RewriteRule ^([A-Za-z0-9'"%ãõáéíóúâêîôûàÁÃÕÁÉÍÓÚÂÊÎÔÛÀ\/\.\-]*)$ public_html/$1 [NC]
我在這裏使用這個表達式,它工作得很好,但如果我把例如:htaccess的正則表達式下劃線和空間行不通
RewriteRule ^([A-Za-z0-9 _'"%ãõáéíóúâêîôûàÁÃÕÁÉÍÓÚÂÊÎÔÛÀ\/\.\-]*)$ public_html/$1 [NC]
這在這裏不起作用。由於空格和下劃線,我想在正則表達式中包含空格和下劃線,但它根本不起作用。我必須添加一些特別的東西嗎?
,這也不起作用:
RewriteRule ^(.*)$ public_html/$1 [NC]
我希望能夠鍵入的public_html文件夾中任何事情,開放的。
實施例,I型:www.mysite.com/site_1.php 然後它打開:www.mysite.com/public_html/site_1.php
這htaccess的表達被在HostGator的服務器使用測試Apache 2.2.17 ,我也在我的本地主機Apache 2.2.17中測試過,同樣的情況發生。 。
的錯誤添加_和空間,或當給定*是這樣的:
內部服務器錯誤
服務器遇到一個內部錯誤或配置錯誤, 無法完成您的請求。
請聯繫服務器管理員[email protected],並告知他們發生錯誤的時間,以及您可能已經完成的任何可能導致錯誤的事情 。
有關此錯誤的更多信息可能在服務器錯誤 日誌中可用。
謝謝你們提前。
轉義空格,否則Apache會將其視爲正則表達式模式的結束。所以使它成爲空間而不是空間。至於內部服務器錯誤,請查看服務器的錯誤日誌。它將具體說明造成它的原因(可能是使重寫過程的空格字符有語法錯誤)。 –
感謝您的回答,這有助於解決空間問題,但剩下的問題呢? *和下劃線? – Grego
不要以爲'_'是這些正則表達式中的一個metachar。但試着逃避它,看看會發生什麼。使用'_'或'。*'時仍會出現內部錯誤?再次檢查錯誤日誌,看看它是不同的消息。 –