这是我的.htaccess:
Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !index\.php [NC]
RewriteCond %{REQUEST_FILENAME} !\.php$ [NC]
RewriteRule ^([^/]+)/?$ index.php?page=$1 [QSA]
基本上如果你输入/ test,它会完美地工作,如果你去/test.php,它将显示没有重写规则的PHP页面,这是我只需要某些页面。
让我们说有一些页面(一些)我希望能够(加载整个.php页面),但所有其他页面,我想要的是如果有人去/contact.php ,它重定向到/联系,到右边。
所以让我们说“result.php”和“search.php”,我希望它能够加载整个PHP页面,但对于其余部分,我希望它重定向到正确的地址(所以/ contact .php => / contact)。
我怎么能这样做?基本上我需要为几页(我自己确定)添加这个RewriteRule(RewriteCond %{REQUEST_FILENAME} !\.php$ [NC]
),而对于其他页面我需要另一个RewriteCond(将所有“test.php”重定向到“试验“)
非常感谢!
答案 0 :(得分:0)
你可以将所有这些异常放在你的第一个RewriteCond中并改变第二个RewriteCond来跳过这样的真实文件和真实目录:
RewriteCond %{REQUEST_URI} !/(index|result|search)\.php [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /index.php?page=$1 [QSA,L]