我的域名 example.com 指向目录 public_html。目录中有 public_html/php 是我的 index.php 文件。
现在我想要 URL示例.com指着公共html/php/index.php。我必须使用 mod_rewrite 来执行此操作,因为我无权访问 httpd.conf 来使用 Alias 或 DocumentBase 执行某些操作。
在目录 public_html 中是我的 .htacces 文件,其内容如下:
RewriteEngine on
RewriteCond %{HTTP_HOST} exaple.com$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /php/index.php [L,QSA]
这完成了一半的工作,因为当我输入类似example.com/s在我的浏览器中它指向公共html/php/index.php就像我希望的那样。但是当我输入示例.com它指向公共的html。
我该如何修复此问题?
答案1
RewriteCond %{REQUEST_FILENAME} !-f
该!-f
标志表示“如果请求的文件不存在”。访问 example.com 时,ApacheDirectoryIndex
指令将请求重定向到/public_html/index.php
,该文件是否存在?因为如果存在,您的请求RewriteRule
将被忽略。您必须删除RewriteCond
上述内容,或删除该/public_html/index.php
文件。