Apache重写空正则表达式(根)
我在Windows8笔记本电脑(WAMP服务器)上运行了Apache2.4.4,我发现.htaccess mod_重写规则的行为非常奇怪 我想将我的网站的根目录重定向到一个特定的文件。我的.htaccess如下所示:Apache重写空正则表达式(根),apache,.htaccess,mod-rewrite,redirect,document-root,Apache,.htaccess,Mod Rewrite,Redirect,Document Root,我在Windows8笔记本电脑(WAMP服务器)上运行了Apache2.4.4,我发现.htaccess mod_重写规则的行为非常奇怪 我想将我的网站的根目录重定向到一个特定的文件。我的.htaccess如下所示: RewriteEngine On RewriteBase / RewriteRule $^ /static/home.php [L,QSA] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{DOCUMENT_ROOT}%{REQ
RewriteEngine On
RewriteBase /
RewriteRule $^ /static/home.php [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ router.php?url=$1 [L,QSA]
只有当根目录中没有index.php文件时,这才有效。当我创建index.php文件时,Apache会将空路径直接重定向到索引文件,而不必考虑第一条重写规则
有没有办法让这些重写规则和index.php文件一起工作?换句话说,我的示例是可行的,但我想将router.php
重命名为index.php
,并保持这两个重写规则都有效
谢谢 您可以调整您的正则表达式模式,使其在两种情况下都能工作:
DirectoryIndex something-else.php
RewriteEngine On
RewriteRule ^$ /static/home.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
是的,可以。不幸的是,我不能使用它,因为我可能过于简化了我的示例。我需要index.php文件(我的网站路由器)处理的其他URL。我要更新我的问题。你知道Apache为什么会这样做吗?我会等待你的编辑给你一些可能的解决方法。好吧,这不起作用,但是如果我将
DirectoryIndex.php
更改为DirectoryIndex something.php
,它会起作用。谢谢,我不知道目录索引!很高兴知道答案是正确的,你可以点击我答案左上角的勾号,将答案标记为已接受。是的,如果你按照我所写的方式修改示例,那么我会将你的答案标记为解决方案