我的htaccess文件中有这一行:RewriteRule(。*)index.php 这会捕获发送到我的站点domain.com的所有请求 现在我创建了一个子域blog.domain.com,我收到内部服务器错误。如何在htaccess中添加blog.domain.com作为例外。
这是我的整个htaccess文件:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} .*/http-bind
RewriteRule (.*) /http-bind [L]
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} !/ow_updates/index.php
RewriteCond %{REQUEST_URI} !/ow_updates/
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.raw|/[^.]*)$ [NC]
RewriteCond %{REQUEST_URI} !/ow_updates/
RewriteCond %{REQUEST_URI} !/google3ce18567a119af4.html
RewriteRule (.*) index.php
答案 0 :(得分:0)
将以下行添加到RewriteCond
块的顶部。
RewriteCond %{HTTP_HOST} !^blog\.domain\.com
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} !/ow_updates/index.php
RewriteCond %{REQUEST_URI} !/ow_updates/
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.raw|/[^.]*)$ [NC]
RewriteCond %{REQUEST_URI} !/ow_updates/
RewriteCond %{REQUEST_URI} !/google3ce18567a119af4.html
仅当blog.domain.com
的请求不且符合您当前的所有条件时才会通过。
作为一方,我鼓励你做一些更像下面的事情而不是特定的文件检查。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
这可确保请求不是现有文件或目录。它比特定资源的白名单更容易维护(例如google3ce18567a119af4.html,/ ow_updates /等)。