我有一个网站,其中有几个独立的网页(如signup.php
)和一个主要的PHP文件,显示其余的页面使用一个GET参数。
我希望将HTTP请求重写到服务器,以便请求如下:
http://example.com/website/settings/
将显示页面
http://example.com/website/index.php?page=settings
,而不影响所有其他页面。
我对mod_rewrite非常陌生,我的所有尝试都产生了404或500个响应代码。编写RewriteCond和RewriteRule的正确方法是什么?
发布于 2014-09-26 23:16:40
将这些规则添加到文档根目录中的htaccess文件中( website
文件夹位于其中):
RewriteEngine On
RewriteCond %{THE_REQUEST} \ /+website/(?:index\.php|)\?page=([^&]+)/(&|\ |$)
RewriteRule ^ /website/%1/ [L,R]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^website/(.+)/$ /website/index.php?page=$1 [L,QSA]
或者,如果这样做更有意义,您可以将这些规则放在website
文件夹中:
RewriteEngine On
RewriteBase /website/
RewriteCond %{THE_REQUEST} \ /+website/(?:index\.php|)\?page=([^&]+)/(&|\ |$)
RewriteRule ^ %1/ [L,R]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ index.php?page=$1 [L,QSA]
https://stackoverflow.com/questions/26069234
复制相似问题