2017-10-13 51 views
0

我有兩個類型的URL我要讓可讀/漂亮:使不同類型的網址漂亮與htaccess的

www.mydomain.com/index.php -> www.mydomain.com/index 
(remove .php) 

而且

www.mydomain.com/information.php?=story1 -> www.mydomain.com/information/story1 
(replace .php=? with /) 
Im using $_SERVER[REQUEST_URI] to grab the "story" from the database 

我已經試過了日期和時間,但找不到任何解決方案。有什麼建議麼?

+0

請問您可以告訴我們預期的結果和實際結果是什麼? – SteveFest

+0

預期結果:www.mydomain.com/information/story1 - 實際結果:www.mydomain.com/information.php?=story1 - 我需要擺脫.php?= – CitronAutobot

回答

0

你應該試試這個:

RewriteEngine On 

# Unless directory, remove trailing slash 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/$ http://example.com/folder/$1 [R=301,L] 

# Redirect external .php requests to extensionless url 
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/ 
RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L] 

# Resolve .php file for extensionless php urls 
RewriteRule ^([^/.]+)$ $1.php [L] 
+0

它仍然無法正常工作。它只會刪除.php文件,並不會取代?=用斜槓/ www.mydomain.com/information.php?=story1 - > www.mydomain.com/information?=story1 - 我需要它是www。 mydomain.com/information/story1 還有其他想法嗎?應該有可能...... – CitronAutobot

1

好吧,我理解了它自己。

第一: www.mydomain.com/index.php - > www.mydomain.com/index (刪除.PHP)

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

二: 我不得不做出一些改變,但繼承人云:

目標: www.mydomain.com/information.php?story=1 - > www.mydomain.com/information/1

RewriteEngine on 
RewriteRule ^information/([A-Za-z0-9-\s]+)$ information.php?story=$1 

,這是添加到PHP代碼:

$story_str = $_GET['story']; 
$story_str = 1 

在你的PHP代碼中的標記,添加這個以確保您的圖像和CSS加載:

<base href="/" /> 

最後,這增加您的.htaccess也會確保您的圖片和CSS已加載:

RewriteRule ^detail/(css|js|img)/(.*)?$ /$1/$2 [L,QSA,R=301]