使不同类型的网址漂亮与htaccess的

问题描述:

我有两个类型的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

你应该试试这个:

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

好吧,我理解了它自己。

第一: 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]