0

我有一段时间试图让 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>
4

1 回答 1

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]

这只是一个例子。必须修改规则和参数以满足实际要求。

于 2013-01-30T03:13:18.510 回答