2014-01-11 2 views
0

Current .htaccessMod переписан для перенаправления 404

RewriteEngine on 

RewriteRule category-([0-9]+)-(.*)-([0-9]+)\.html$ category.php?cid=$1&name=$2&page=$3.php [L] 
RewriteRule search-(.*)-([0-9]+)\.html$ search.php?term=$1&page=$2.php [L] 
RewriteRule all-covers-([0-9]+)\.html$ all-covers.php?page=$1.php [L] 
RewriteRule featured-covers-([0-9]+)\.html$ featured-covers.php?page=$1.php [L] 
RewriteRule top-downloaded-([0-9]+)\.html$ top-downloaded.php?page=$1.php [L] 
RewriteRule c-([0-9]+)-(.*)\.html$ cover.php?id=$1&name=$2.php [L] 
RewriteRule ^sitemap.xml$ sitemap.php [L] 
RewriteRule ^(.*)\.html$ $1.php [L] 

ErrorDocument 404 /404.html 

Я хочу, чтобы перенаправить на 404 из страниц, как это: [http://example.com/http://example.com/c- 42.html]

Помогите пожалуйста

+0

Не понимаю? URL-адрес, который вы хотите перенаправить; это 'example.com/c-42.html' (в соответствии с вашим уже существующим правилом перезаписи или оно, как вы уже разместили:' http://example.com/http://example.com/c- 42.html'? – BenM

ответ

0

Первое, что вам нужно сделать, это добавить ^ отборочные к вашей модели регулярных выражений:

RewriteRule ^category-([0-9]+)-(.*)-([0-9]+)\.html$ category.php?cid=$1&name=$2&page=$3.php [L] 
RewriteRule ^search-(.*)-([0-9]+)\.html$ search.php?term=$1&page=$2.php [L] 
RewriteRule ^all-covers-([0-9]+)\.html$ all-covers.php?page=$1.php [L] 
RewriteRule ^featured-covers-([0-9]+)\.html$ featured-covers.php?page=$1.php [L] 
RewriteRule ^top-downloaded-([0-9]+)\.html$ top-downloaded.php?page=$1.php [L] 
RewriteRule ^c-([0-9]+)-(.*)\.html$ cover.php?id=$1&name=$2.php [L] 

То есть, например, ^c-([0-9]+)-(.*)\.html$ будет соответствовать http://example.com/c-42.html, но больше не будет соответствоватьhttp://example.com/http://example.com/c-42.html. И последний автоматически окажется в виде 404.

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