我从某个地方获得了这个代码..它基本上做的是删除.php扩展名
RewriteEngine On
RewriteRule ^Start/?$ index.php [NC,L]
RewriteRule ^Info/?$ info.php [NC,L]
RewriteRule ^Gallery/?$ gallery.php [NC,L]
它确实运作良好,但由于一些搜索引擎优化的东西,我需要在最后添加自动traling斜杠..
现在是sitename.com/Start 但它必须重写为sitename.com/start /
任何解决方案??
答案 0 :(得分:0)
您应该使用301
重定向处理此问题,将其置于已定义的规则之上:
RewriteCond %{REQUEST_URI} !(/$|\.)
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
在您已定义的规则中删除可选的尾部斜杠标记也是值得的,因此生成的.htaccess
文件将如下所示:
RewriteEngine On
RewriteCond %{REQUEST_URI} !(/$|\.)
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
RewriteRule ^Start/$ index.php [NC,L]
RewriteRule ^Info/$ info.php [NC,L]
RewriteRule ^Gallery/$ gallery.php [NC,L]
为了避免第一个条件重写有效文件,你应该添加另一个条件:
RewriteCond %{REQUEST_FILENAME} !-f
最后,您的.htaccess
应如下所示:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(/$|\.)
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
RewriteRule ^Start/$ index.php [NC,L]
RewriteRule ^Info/$ info.php [NC,L]
RewriteRule ^Gallery/$ gallery.php [NC,L]