你好我是Mod_Rewrite的新手,想要第一次使用它,我有一个简单的请求,如何从我的页面中删除.php扩展名并重写查询字符串。
http://localhost/myproject/aboutus.php?page=info
http://localhost/myproject/products.php?page=first-product
我有这样的多个页面,我需要做的是
http://localhost/myproject/aboutus/info
http://localhost/myproject/products/first-product
同样关于aboutus.php?page = moreinfo和product.php?page = second-product等等。
我需要的只是一个简单的规则,从页面中删除.php扩展名并重写所有页面的获取页面查询字符串。 如果有人可以帮忙吗?
答案 0 :(得分:1)
在你的htaccess(应该在你的myproject
目录中)中尝试这个:
Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteBase /myproject/
RewriteCond %{ENV:REDIRECT_END} !^1$
RewriteRule ^([A-Za-z-_]+)\.php$ $1/%{QUERY_STRING} [R=301,L]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule . - [L]
RewriteRule ^([A-Za-z-_]+)/([A-Za-z-_]+)/?$ $1.php?page=$2 [E=END:1,L]
RewriteRule ^([A-Za-z-_]+)/?$ $1.php [E=END:1,L]
RewriteRule ^$ index.php [E=END:1,L]
匹配该规则的myproject
目录中的每个网址(例如something/other-thing
)都会被重写为something.php?page=other-thing