我正在尝试使用带有 htaccess 的参数来实现目录 URL

I am trying to achieve a directory URL using parameters with htaccess

我想在我的网站上显示某些内容。我根据 URL 参数选择内容,例如 page=about。这很好用,我的 URL 看起来像 example.com/mysite/index.php?page=about。我的问题是我希望我的 URL 阅读示例。com/mysite/about,其中最后一部分是页面参数的名称。

我正在尝试通过 htaccess 执行此操作。这是我的确切代码:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?page= [L,QSA]

我的页面和 URL 结构都没有变化。 URL 仍然显示为 ...index.php?page=about。难道我做错了什么?我尝试了很多不同的方法,但仍然得到相同的结果。我也试过简单地这样做,没有改变:

RewriteEngine On
RewriteRule ^([a-z]+)\/([0-9]+)\/?$ index.php?page= [NC]

我认为它不起作用,所以我尝试重定向到其他网站并且它起作用了。因此,htaccess 文件正在读取并能够运行。

任何帮助都会有帮助!

谢谢, 血压

您可以在站点根目录 .htaccess 中使用这 2 个规则:

RewriteEngine On

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} \s/+(mysite)/index\.php\?page=([^\s&]+) [NC]
RewriteRule ^ /%1/%2? [R=302,L,NE]

# internal forward from pretty URL to actual one
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/mysite/([^/]+)/?$ [NC]
RewriteRule ^ index.php?page=%1 [L,QSA]