2017-10-13 1 views
0

とURLの異なる種類を作成します。私はかなり/読めるようにしたいURLの2種類持っているかなりの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

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

セカンド(.phpの削除): は、私はいくつかの変更をしなければならなかったが、 HERESに行く:

目標: 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コードに追加されます。

<base href="/" /> 

をそして最後にこれを追加します。

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

PHPコードのタグには、これはあなたの画像やCSSがロードされていることを確認するために追加.htaccessを使用して、画像とCSSがロードされていることを確認してください:

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