mod_rewrite更改/子页面/到/子页面

时间:2010-12-01 15:55:15

标签: php regex mod-rewrite

哦,这是我的问题。 我想使用mod_rewrite为我的网站制作漂亮的网址。

我希望他们都有好看的网址,比如www.mypage / tennis或www.mypage / soccer而不是www.mypage /?page = tennis和www.mypage /?page = soccer

按照以下规则我可以​​实现:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule .* index.php [L]

所以现在如果我输入www.mypage / soccer,我的PHP脚本会读取这个网址并将其翻译为$ _GET ['page'] = soccer。这一切都很好!

问题如果我输入网址 www.mypage / soccer / ,网站无法找到每个链接的css或图片,因为它现在当然没有现有文件夹 / soccer /

如何制作将 / soccer / 转换为 / soccer 或任何其他/ blabla / to / blabla

的重写规则

希望我的问题很明确!如果有人有任何好的页面,我可以学习更多正则表达式,我会非常高兴!

3 个答案:

答案 0 :(得分:1)

我认为您不应该使用mod_rewrite,而是修复您的CSS和图片路径。

更改relative to absolute的路径, 意思是,路径应以/开头。

如果你有这个,无论你在哪个网站,/images/myimage.png都会引用www.mypage.com/images/myimage.png

答案 1 :(得分:1)

试试这个:

RewriteRule ^([A-Za-z0-9-]+)/?$ ?page=$1 [L]

答案 2 :(得分:1)

#  For URIs with query string:

RewriteCond %{QUERY_STRING} (.+)
RewriteRule (.*)/$ ?page=$1&%1 [L]

#  All other

RewriteRule (.*)/$ ?page=$1 [L]