我知道這個問題已經在這個論壇上多次發佈。重寫我的.HTACCESS文件
而且,我已遵循給出的每個示例。試過每個代碼。
而且,我仍然無法產生所需的結果。
我在與重寫我的.htaccess文件
基本上,我想要做的4件事了一個問題:
(一)刪除所有PHP擴展
(b)移走所有HTML擴展
(c)中去除任何尾隨斜槓
(d)添加一串 「jibberish」 的任何URL的末尾,
這樣鏈接對未經訓練的眼睛是不可見的。
我還沒有發現任何關於網上如何處理第四個問題
對於前三,我得到這個從一個在線教程:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# remove the .html extension
RewriteCond %{THE_REQUEST} ^GET\ (.*)\.html\ HTTP
RewriteRule (.*)\.html$ $1 [R=301]
# remove the .php extension
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
# remove trailing slash if not a directory
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /$
# RewriteRule (.*)/ $1 [R=301]
RewriteRule ^([^/]+)/$ /$1 [R=301,L,NE]
</IfModule>
# END WordPress
但是,它不工作。
在我的HTML/PHP文件中,我試圖通過刪除擴展來運行測試。
例如,我改變了:
<"/My_folder/begin.html"> to <"/My_folder/begin">
我去掉了HTML擴展名(我也做了同樣的PHP文件,太)
我,
404錯誤:「 Page Not Found「
顯然,我的HTACCESS
文件是wron G。
不過,不知道是什麼問題:(
UPDATE
經過廣泛的研究,這是我一直爲我的.htaccess文件中創建:
# disable directory browsing
Options -Indexes
# enable Multiviews
Options -MultiViews
# allow server to process and follow all "fictional" URLs.
Options +FollowSymlinks
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.php [NC,L]
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
</IfModule>
# END WordPress
但是,它仍然無法正常工作
UPDATE
我終於得到了它的工作
我只是註釋掉從代碼每隔一行,只留下這樣的:
# BEGIN WordPress
<IfModule mod_rewrite.c>
# disable directory browsing
Options -Indexes
# enable Multiviews
Options -MultiViews
# allow server to process and follow all "fictional" URLs.
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
#RewriteEngine On
#RewriteBase/
#RewriteRule ^index\.php$ - [L]
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule . /index.php [L]
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^([^/]+)/$ $1.php [NC,L]
#RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
</IfModule>
# END WordPress
對於我的世界,我無法弄清楚到底發生了什麼煩心事代碼放在第一位。
顯然,htaccess可以接受數百行代碼。
但是,如何將它們按正確的順序分層?因爲,通過消除(也就是說,單獨註釋每行)過程,我可以得出結論:我的代碼語法錯了!
但是,爲什麼呢?
我應該在每個單一規則之前聲明一個條件(COND)嗎?
像這樣:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.php [NC,L]
或者...........我應申報的條件只有一次..........然後右鍵以下所有規則它:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.php [NC,L]
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
我已經檢查了每一個可用的在線教程,並沒有解決這一點的任何地方。
你有404,因爲它重定向到頁面,而不擴展,犯規存在。 – pbalazek
是的,我知道。我的問題是:htaccess文件有什麼問題? – phpnewbie2015