0
您好,我有一個mod_rewrite腳本爲我建立的個人網站上的友好的網址。這個腳本很棒,直到我注意到我無法理解我的admin文件夾是服務器上的一個真實目錄。在我做第一次改變之前,.htacsess看起來像這樣。國防部重寫不顯示第二級鏈接上的內容
Options +SymLinksIfOwnerMatch
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteRule \.(css|jpe?g|gif|png|js)$ - [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?page=$1
RewriteRule ^(.*)/(.*)$ index.php?page=$1
所以我修改劇本,增加了第二組的這兩個規則:!
的RewriteCond%{} REQUEST_FILENAME -d 的RewriteCond%{} REQUEST_FILENAME -f
直接在最後一個規則之前,所以它看起來像這樣沒有前4行代碼:
RewriteRule \.(css|jpe?g|gif|png|js)$ - [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?page=$1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/(.*)$ index.php?page=$1
一旦我這樣做,我能夠_1的存取admin目錄,但現在,所以它看起來像最後一個規則被忽略的內容不會在二級鏈接顯示。
任何人都可以幫助我看到我在做什麼錯我會非常感激。
瑞恩·鮑爾
感謝您的及時回覆。你是否說我刪除了最後三條規則,並用你列出的新規則替換它,因爲通配符應該覆蓋二級鏈接? – 2012-07-31 23:34:32
我在說你應該只需要前四條規則,直至包括'RewriteRule ^(。*)$ index.php?page = $ 1'。但是,如果這不起作用,請保留所有*規則,並用'RewriteRule ^(。*)/(。*)$ index.php?page = $ 1/$ 2'替換最後一條規則。換句話說,在'$ 1'後面加上'/ $ 2'到最後一個規則。 – dririan 2012-07-31 23:37:21
謝謝你,當我試着做你說的話,包括添加/ $ 2服務器不能再顯示第一級鏈接時,第二級鏈接仍然顯示頁面,但是數據庫中的內容沒有顯示。這是有點奇怪,因爲頁面顯示所有的CSS唯一不顯示的是從服務器拉的內容 – 2012-07-31 23:55:09