我试着通过Apache的文档来获得这个问题的答案,但是我不得不承认我对mod_rewrite的许多小错综复杂的无知。
基本上,我有一个重写规则,做得太多了。我只想将两种类型的URL重定向到index.php:
http://domain.com/pathone/*
和
http://domain.com/pathtwo/*
但是,我现在所做的就是重写所有内容,正如您对以下规则所期望的那样。这意味着我无法在不重定向回http://domain.com/about.php
的情况下访问index.php
等文件。
以下是.htaccess
目前所拥有的内容:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index.php
RewriteRule (.*) index.php [L]
我以为我可以将RewriteRule改为
RewriteRule ^/(pathone|pathtwo)/(.*) index.php [L]
但这似乎打破了一切:/
我非常感谢对此事的任何帮助:)提前致谢!
答案 0 :(得分:0)
我只需要一个更好的RewriteRule,正如预期的那样。我把它改成了
RewriteRule ^(pathone/|pathtwo/)[a-zA-Z0-9]+$ index.php [L]
它似乎正在发挥作用。虽然,由于某种原因,当文件确实存在时,某些文件会返回500个错误......也许是另一天的问题。
答案 1 :(得分:0)
RewriteRule是基于上述条件采取的行动。最后一个RewriteCond声明任何非index.php将采取以下行动。您需要编辑此条件,而不是操作。