我正在四處尋找重複項目,但我無法找到我認爲應該是一個簡單的答案。htaccess添加.php到沒有擴展名的所有東西
什麼是將.php
添加到沒有擴展名的任何重寫規則?
例子:
www.website.com/styles.css - > www.website.com/styles.css
www.website.com/login - > www.website.com/login .php
謝謝!
我正在四處尋找重複項目,但我無法找到我認爲應該是一個簡單的答案。htaccess添加.php到沒有擴展名的所有東西
什麼是將.php
添加到沒有擴展名的任何重寫規則?
例子:
www.website.com/styles.css - > www.website.com/styles.css
www.website.com/login - > www.website.com/login .php
謝謝!
下可滿足您的需求:
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.+)$ $1.php [L]
這將擴展名.php自動添加到文件名不帶擴展名。它可能會嘗試將something.css重命名爲something.css.php,但只有在存在something.css.php時纔會這樣做。
要通過@quinxorin擴大答案,您還可以執行以下操作。
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteCond %{REQUEST_FILENAME}\.php ^(.*)\.php(.*)$
RewriteRule .* %1.php?%2 [QSA]
這會將url的其餘部分追加到結果中。即/page/1234
變成/page.php?1234
。
在什麼情況下你想這樣做?這些鏈接是否在文件中?他們是否在動態生成的網頁中? – IanPudney
沒有什麼奇特的。我網站上的所有網頁都是php腳本,我只想使用漂亮的網址。我現在對我的網站上的每一個頁面都有一個規則,因爲我不知道簡單的方法:對於每一個我擁有的頁面,都有'RewriteRule^login $ login.php [L]'...我希望用戶能夠鍵入/登錄並獲得完整的login.php頁面 – pinhead