修复 Apache 中的 mod_rewrite 规则,使其仅适用于一个域

修复 Apache 中的 mod_rewrite 规则,使其仅适用于一个域

我目前有

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ ^ezrahub.com/index.php/$1 [QSA,L]
</IfModule>

如果我只有一个网站的话这还好,但我没有意识到这会弄乱我服务器上的其他所有域(哎呀!)。

我基本上只想重写http://ezrahub.com/index.php/$1以删除index.php并在该域上创建一个干净的 URL 而不显示 index.php... 对于新手问题表示歉意.. 我需要如何处理这个问题?

答案1

虽然我同意迈克尔·汉普顿的回应,但这里有一个快速解决方案来做你想做的事情:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{HTTP_HOST} ezrahub.com
    RewriteRule ^(.*)$ ^ezrahub.com/index.php/$1 [QSA,L]
</IfModule>

如你所见,除了要求文件不存在之外,我还添加了 Host 头为 ezrahub.com 的条件。

感谢您使用实际的主机名,这使得提供帮助变得更加容易!

相关内容