2

我总是很讨厌.htaccess 我正在尝试建立一个所有请求都通过index.php 进行的网站,但我希望URL 类似于www.sample.com/home。实际上,该网址将加载 www.sample.com/index.php?page=home

现在我有

 RewriteRule ^/([a-z0-9-]+) /index.php?page=$1 [NC,PT,L]

即使 regexr 测试显示它应该也不起作用。我暂时将其更改为 r=301 以便我可以看到重定向并注意到 www.sample.com/home 正在重定向到 www.sample.com/index.php?page=/index.php :(

有什么想法吗?

注意我已经搜索了一段时间,但找不到真正有效的解决方案。这不像是我的第一站。

4

1 回答 1

3

将您的规则更改为:

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

RewriteRule ^([a-z0-9-]+)/?$ /index.php?page=$1 [QSA,L,NC]

参考:Apache mod_rewrite 简介

于 2013-10-29T20:43:47.957 回答