.htaccess - 将index.php重定向到不可见的index.php

时间:2013-11-15 11:25:22

标签: php .htaccess redirect

我想将旧页面(例如“index.php / sdasdasd / sdasda /”)重定向到他们的新内容。我正在使用PHP来执行此操作,因为数据存储在MySQL中。问题是,当url以“index.php”开头时,它不会重定向到正确的页面。在后台它应该调用:“index.php?url = index.php / sdasdasd / sdasda /”。我怎样才能在.htaccess中解决这个问题?

RewriteEngine on

RewriteCond %{REQUEST_URI} !(/$|\.)
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]

RewriteRule ^(.*/)?\.svn/ - [F,L]
RewriteRule \.(gif|jpg|png|css|flv|js|swf|php)$ - [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+\.php)$ index.php?url=$1 [QSA,L]
RewriteCond %{REQUEST_URI} !(\.)
RewriteCond %{REQUEST_URI} !(\.)
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} .*

RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

如果您对此代码有任何其他改进,那么欢迎您提出更改建议。

1 个答案:

答案 0 :(得分:0)

  

如何在.htaccess中解决此问题?

您有一个重复的条件:

RewriteCond %{REQUEST_URI} !(\.)
RewriteCond %{REQUEST_URI} !(\.)

您可以删除其中一个。

但是为了将请求重定向到/index.php/something,您需要在RewriteEngine on下方添加:{/ p>

RewriteCond %{THE_REQUEST} \ /index\.php
RewriteRule ^index\.php(.*)$ /$1 [L,R=301]