2016-10-13 5 views
0

私は個人的なウェブサイト(基本的にはポートフォリオです)のために以下のファイルを作成しました:HTAccessURLリライトとPHPコード

# Error 
ErrorDocument 401 /error.php?id=401 
ErrorDocument 403 /error.php?id=403 
ErrorDocument 404 /error.php?id=404 
ErrorDocument 500 /error.php?id=500 

# Enable URL rewriting 
Options +FollowSymlinks 
RewriteEngine on 
RewriteOptions Inherit 

# Url rewrite for assets 
RewriteCond %{REQUEST_URI} !^/assets(/.*|)$ [NC] 
RewriteCond %{REQUEST_URI} !^/gallery(/.*|)$ [NC] 
RewriteRule ^.+$/[R=302,L] 

# Url rewrite for pages 
RewriteRule ^home$ index.php 
RewriteRule ^about$ about.php 
RewriteRule ^gallery/(.+)$ gallery.php?id=$1 
RewriteRule ^password/(.+)$ password.php?id=$1 
RewriteRule ^private/(.+)$ private_gallery.php?id=$1 
RewriteRule ^hidden/(.+)$ hidden_gallery.php?id=$1 
RewriteRule ^download/(.+)$ download.php?id=$1 
RewriteRule ^contact$ contact.php 

これは、自分のウェブブラウザからこれらのURLに直接アクセスしようとすると効果的です。

私のHTMLPHPコードでは、私はこれらを持っています古い URLSです。 HTAccessファイルを書き込む前に、これらのURLが存在することを意味します。このURLをユーザーがクリックするが、彼は

/private_gallery.php?id=SomeGalleryId 

なく

/private/SomeGalleryId 

に私PHP/HTMLコードを編集せずにそれを変更する方法はありにリダイレクトされ

<a href="private_gallery.php?id=SomeGalleryId">Open this gallery</a> 

答えて

1

別のリライトを使用してクエリ文字列を照合し、301のリダイレクトを行うことができます。これはおそらくSEOの専門家がクロスアイになる原因になります。それはSEOが良い作品になる場合は、より良いあなたのHTMLコードでフォーム/private/SomeGalleryIdでURLを持っているとprivate_gallery.php?id=SomeGalleryIdではなく、周りにこのようけど...

RewriteCond %{REQUEST_URI} ^/private_gallery\.php$ 
RewriteCond %{QUERY_STRING} id=(\w+).* 
RewriteRule ^.*$ /private/%1 [R=301,L] 
+0

に見えないようにリダイレクトするおかげで、私は、コードを編集します。 – Manitoba