我有一段时间试图让apache mod_rewrite规则起作用。使这个过程最困难的是我无法知道最终输出字符串是什么。我继续得到404页,但除了我做错了之外,这并没有告诉我多少。是否有一些方法可以回显最终的重写,而不是将我重定向到404?
。 。 。如果有人想帮助我解决我原来的问题,我正试图让所有前往/server/root/to/folder/public_html/
的人被重定向到/server/root/to/folder/public_html/destinationFolder/
。以下是我尝试过的数百种变体之一:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond $1 !^(favicon\.ico|assets)
RewriteRule ^public_html/(.*) destinationFolder/$1 [L]
</IfModule>
答案 0 :(得分:1)
您正在使用系统路径。 Apache mod_rewrite仅适用于URL(.htaccess文件中含有PT标志),这是您的第一个错误。
public_html
通常是根目录。例如:http://mydomain.com
然后,完整的规则集可能是这样的:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^(favicon\.ico|assets) [NC]
RewriteRule ^(.*)/?$ DestinationFolder/$1 [L]
无声地映射
http://mydomain.com/Anything
要:
http://mydomain.com/DestinationFolder/Anything
anything
为文件favicon.ico
或文件夹/assets
对于永久重定向,请将[L]
替换为[R=301,L]
这只是一个例子。必须修改规则和参数以满足实际要求。