2016-09-11 10 views
-1

これを投稿する前に外を見て、私の特定の問題と一致するものは見つかりませんでした。SEOフレンドリーなURLと.htaccess

私のウェブサイトでは、自分のURLが.phpなしであることを好みます。そのため、私の.htaccessファイルにその設定があり、完全に動作します。現時点で私のサイトには「アルバム」と呼ばれるページがあり、それは今年のトップアルバムです。しかし、私は来年もそれをやりたいと思っています。今、私はアルバムのようにすることができますか?日付= 2017、それは醜いように見えます。私はexample.com/albums/2017としてそれをやりたいと思っています。それはもっと見栄えが良くて、もっとSEOフレンドリーだからです。 ?

私は私のhtaccessファイルを持っていることは、次のとおりです。リダイレクトなし

RewriteEngine On 

# Remove PHP from file names 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L] 

# Redirect albums.php?date=2017 to albums/2017 
RewriteCond %{THE_REQUEST} \s/albums\?date=([0-9]+)\s [NC] 
RewriteRule^/albums/%1? [R=301,L] 
RewriteRule ^albums/([0-9]+)$ /albums?date=$1 [L] 


Options -Indexes 

# Error Document Redirects 
ErrorDocument 403 http://example.com/errors/403 
ErrorDocument 404 http://example.com/errors/404 

albums.php日= 2017の作品を、私は中にリダイレクトを入れたとき、それは/アルバム/ 2017にあなたを送りますページには何も表示されません。 「ファイル名からPHPを削除」リダイレクトを削除した場合は、そのページに情報が表示されます。だから明らかに私は、エラーが "ファイル名からPHPを削除する"セクションのために発生したことを確認しました。私はそれを修正する方法がわかりません。

私は、.htaccessとRewriteEngineについて非常に知識がありません。十分な、または非常に基本的なことしか知りません。恐ろしいことがあれば謝ります。私が試してみて、私は重複の質問を行わなかったことを確認するために見ていたが、申し訳ありません私が持っている場合は、

+0

なぜ誰かがdownvotedされた理由を説明せずにdownvoted誰にも感謝します。 :-) –

答えて

0

はそれを考え出しました。

# Redirect albums.php?date=2017 to albums/2017 
RewriteRule ^albums/([^/]*)$ /albums?date=$1 [L] 

# Remove PHP from file names 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L] 
0

はこのようにそれを試してみてください、

RewriteEngine On 
# removed .php extension 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^([\w-]+)$ $1.php 

# you can directly use album/(date) in your url using this rule 
RewriteCond %{REQUEST_FILENAME}.php !-f 
RewriteCond %{REQUEST_FILENAME}.php !-d 
RewriteRule ^([\w-]+)/([\d]+)$ $1.php?date=$2 
+0

albums?date = 2017作品ですが、アルバム/ 2017に行くと、そのファイルが見つからないという404が表示されます。 –

+0

大丈夫なのですが、albums.php?date = 2017を呼び出すと、phpの拡張機能を使っているかどうかを確認します。 –

+0

album.php、普通のPHPページ –

関連する問題