2015-05-07 2 views
4

Недавно я попытался скрыть параметры с моего url, используя htaccess, в результате получилось 500 Server Error.Htaccess новая строка сбоев страница

Вот мой .htaccess код:

<files .htaccess> 
    order allow,deny 
    deny from all 
</files> 
Options -Indexes +FollowSymLinks 
RewriteEngine on 
RewriteBase/
ErrorDocument 404 /404.php 
RewriteEngine On  
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s] 
RewriteRule ^(.+?)/$ /$1 [R=301,L] 
RewriteBase/
RewriteRule ^([^/]+\.php)/.* $1 [R=301,L] 

RewriteRule ^buyit\.php$ /buyit.php?qstart=1&gid=73161-645821-36&qid=4&daq=0&preq=14&clk=7 [L] 

Все, что я хотел сделать, это моя страница buyit.php QSTA = 1 & GID = 11-64-36 & QID = 4 & KAQ = 0 & REQ? = 14 & dlk = 7, чтобы всегда показывать, как buyit.php, сохраняя мои переменные неповрежденными и удобными для моих php-скриптов. Поэтому я добавил эту последнюю строку в htaccess, но, к сожалению, она сработала.

Любые идеи, почему, пожалуйста?

ответ

1

К сожалению, если вы передаете значения с использованием метода GET, вы не можете просто избавиться от параметров. Тем не менее, вы можете удалить имя параметра и сделать URL уникальным и НЕ ЛЕГКО ПОНИМАТЬ того, кто не знает об именах параметров.

Попробуйте этот код htaccess.

RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)\.html$ /buyit.php?qsta=$1&gid=$2&qid=$3&kaq=$4&req=$5&dlk=$6 [L] 

Он преобразует URL из этого:

http://yourdomain.com/buyit.php?qsta=1&gid=11-64-36&qid=4&kaq=0&req=14&dlk=7 

к этому

http://ydomain.com/1/11-64-36/4/0/14/7.html 

, который также хорошо для SEO.

+0

Thanx, но он не работает ... его, как линия, полностью игнорируется, я все еще могу видеть мои параметры, это возможно ??? – Dions

2

Ваш код зацикливается. Это потому, что вы не можете соответствовать строке запроса в правила перезаписи, таким образом, URL, как:

/buyit.php?qstart=1&gid=73161-645821-36&qid=4&daq=0&preq=14&clk=7 

фактически совпадает:

^buyit\.php$ 

Так что вам нужно добавить условие, чтобы проверить, что там ISN 't строка запроса. Измените свое последнее правило на следующее:

RewriteCond %{QUERY_STRING} ^$ 
RewriteRule ^buyit\.php$ /buyit.php?qstart=1&gid=73161-645821-36&qid=4&daq=0&preq=14&clk=7 [L] 
+0

Не работает вообще ... его вроде добавленных строк не существует ... – Dions

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