簡體   English   中英

Apache,.htaccess-無法在本地工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM