我有一个网站位于example.com/cmsFolder
,我想搬到example.com/newFolder
。我无法手动移动它,因为它完全打破了这个愚蠢的CMS。Apache URL重写 - 试图掩盖文件夹名称
所以我试图用mod_rewrite
来掩盖文件夹名称并保持它看起来不错。
RewriteEngine on
RewriteRule ^cmsFolder/(.*)$ /newFolder/$1 [L]
404失败,怎样才能掩盖文件夹名? :/
我有一个网站位于example.com/cmsFolder
,我想搬到example.com/newFolder
。我无法手动移动它,因为它完全打破了这个愚蠢的CMS。Apache URL重写 - 试图掩盖文件夹名称
所以我试图用mod_rewrite
来掩盖文件夹名称并保持它看起来不错。
RewriteEngine on
RewriteRule ^cmsFolder/(.*)$ /newFolder/$1 [L]
404失败,怎样才能掩盖文件夹名? :/
试试这个,这对我的作品,同时增加这一规则,以Apache的主配置文件:
RewriteEngine on
RewriteRule ^/cmsFolder/(.*)$ /newFolder/$1 [L]
我想你忘记了第一个斜杠前cmsFolder。如果你想看看mod_rewrite的日志:
RewriteLog "_PATH_TO_YOUR_\rewrite.log"
RewriteLogLevel 9
正如保罗·评论日志指令不能在.htacces不允许的。很容易理解为什么:-)
编辑:
也许,如果你想掩盖你将使用请求[P]修饰符(代理):
RewriteEngine on
RewriteRule ^/cmsFolder/(.*)$ /newFolder/$1 [P]
如果你想重写请求/newFolder/…
内部到/cmsFolder/…
,你需要去其他方式轮:
RewriteEngine on
RewriteRule ^newFolder/(.*)$ /cmsFolder/$1 [L]
一个更简单R染料溶液可能只是给newFolder符号链接到cmsFolder
ln -s cmsFolder/ newFolder
或者你可以创建一个简短的PHP script如果你没有shell访问:
<?php symlink('cmsFolder','newFolder'); ?>
不错的解决方案。您需要在Apache配置中放置'Options FollowSymLinks'。如果不是这种解决方案将无法工作。 +1。 – sourcerebels 2010-02-11 09:30:58
是的,谢谢你的纠正 – Paolo 2010-02-11 09:34:14
RewriteEngine on
RewriteCond %{REQUEST_URI} !^subfolder/login
RewriteRule ^login/(.*)$ subfolder/login/$1 [L]
尼斯。我不知道有一个“RewriteLog”指令。这当然比猜测和检查方法更好。 – jamieb 2010-02-11 07:36:19
请注意,日志指令只能在.conf文件中执行,它们不能在.htaccess文件中使用。 – Paolo 2010-02-11 09:22:37
谢谢,我从来没有使用.htaccess文件,因为我只是将Apache用于个人目的。如果您同意,我将使用此信息修改我的回复:-) – sourcerebels 2010-02-11 09:24:51