2016-10-13 2 views
0

Я сделал следующий файл HTAccess для своего персонального веб-сайта (который в основном представляет собой портфолио).URL-код перезаписи и код 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-адресам непосредственно через веб-браузер.

В моих HTML и PHP код, у меня есть эти старые URL. Я имею в виду, что эти URL-адреса существовали до того, как я написал файл HTAccess.

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

Когда пользователь щелкает по этому URL, он будет перенаправлен на

/private_gallery.php?id=SomeGalleryId 

и не

/private/SomeGalleryId 

Есть ли способ, чтобы изменить это без редактирования моего PHP/HTML код ?

ответ

1

Вы можете использовать другой переписывающий файл в соответствии с строкой запроса и сделать 301 переадресацию ... это, вероятно, заставит экспертов SEO пойти наперекосяк; лучше иметь URL-адреса в виде /private/SomeGalleryId в вашем HTML-коде и перенаправлять невидимо private_gallery.php?id=SomeGalleryId, а не таким образом вокруг, но ...

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

Спасибо, я буду править код, если он делает SEO работает лучше. – Manitoba

Смежные вопросы