我有一個網站位於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