如何使用此mod_rewrite重定向现有的* .phps?

时间:2014-03-10 15:32:59

标签: apache mod-rewrite apache2

我使用以下mod_rewrite将所有内容重定向到index.php,但似乎如果存在.php文件,则会打开它而不是重定向到index.php。我应该改变什么来解决这个问题?

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(data/|js/|styles/|robots\.txt) - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

PS:我知道有很多例子可以将.php重定向到别的东西,但是如果可能的话我不想创建新的RewriteRule。

1 个答案:

答案 0 :(得分:0)

不确定你要用前4行实现什么(他们看起来正在做默认的apache)。它们可能是导致问题的原因。

整个区块应该是

RewriteRule ^(data/|js/|styles/|robots\.txt) - [NC,L]
RewriteRule ^/(.*)$ index.php [NC,L]

除了你的资产目的之外,它会发送到index.php

如果您想要实际的http重定向,则需要

RewriteRule ^/(.*)$ /index.php [R]

以下是特定于php的,如果您对此感兴趣的话

RewriteRule ^(.*)\.php index.php [NC,L]