[英]Apache, .htaccess - Not working locally
我的.htaccess中有一個重寫規則。
RewriteRule ^(.+?)$ /user_home.php?domain=$1 [L,QSA]
哪個將mysite.com/mypage
重定向到mysite.com/user_home.php?domain=mypage
這在我的共享主機上可以正常工作,但是在本地工作時,我的站點位於www/mysite/
,而不是重定向到www/mysite/user_home.php?domain=mypage
而是嘗試重定向到www/user_home.php?domain=mypage
不存在。
我的Apache日志中出現以下錯誤
[error] [client ::1] script 'C:/wamp/www/user_home.php' not found or unable to stat
如何更改我的.htaccess使其使用相對路徑而不是絕對路徑直接指向當前目錄中的文件。
您只需要像這樣在規則中從目標URL刪除斜杠:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+?)/?$ user_home.php?domain=$1 [L,QSA]
還需要RewriteCond %{REQUEST_FILENAME} !-f
來防止無限循環。
試試這個代碼:
RewriteBase /mysite/
RewriteRule ^(.+?)$ /user_home.php?domain=$1 [L,QSA]
您只需要添加RewriteBase以及網站根文件夾的路徑即可。
最好的解決方案是添加檢查是否存在像這樣的文件並設置RewriteBase:
RewriteEngine On
RewriteBase mysite/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+?)$ /user_home.php?domain=$1 [QSA,L]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.