我正在使用htaccess将每个请求重写为default.php文件。
Options -Indexes
RewriteEngine On
RewriteRule ^ blog/default.php
但我想提交我网站的sitemap文件(sitemap.xml)。那么请求http://example.com/sitemap.xml rewrites to -> blog/sitemap.xml.
我的尝试失败 - >
Options -Indexes
RewriteEngine On
RewriteRule ^sitemap.xml blog/sitemap.xml
RewriteRule ^ blog/default.php
我的htaccess规则显然没有变硬。但我是新手。请帮助。
答案 0 :(得分:0)
我认为你可以使用RewriteBase来减少博客目录的路径。尝试类似:
RewriteEngine On # enable rewrite engine
RewriteBase /blog/ # Set path "./blog" as a root
RewriteCond %{REQUEST_FILENAME} !-f # Excludes existed files from rewrite
RewriteCond $1 !^(default\.php|sitemap\.xml) # Setup $1 variable
RewriteRule ^(.*)$ default.php/$1 [L] # Process request params to default.php
答案 1 :(得分:0)
到目前为止规则还不错,虽然我猜,你会得到一个重写循环。为了避免循环,您可以在规则前加上重写条件,当请求者是真实文件时跳过规则
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^sitemap.xml$ /blog/sitemap.xml [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /blog/default.php [L]