我使用以下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。
答案 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]