Переименование URL-адреса RewriteRule с параметром не работает

#php #.htaccess #mod-rewrite

#php #.htaccess #мод-перезапись

Вопрос:

Я хочу этот URL: http://www.website.com/article ?a=article-id

станьте этим URL: http://www.website.com/article-id

Я пробовал этот код:

 RewriteEngine On
RewriteRule ^([^/]*)$ /article?a=$1 [L]
  

Я тоже пробовал это:

 RewriteRule ^([a-z-/] )$ article?a=$1 [QSA]
  

ничего не работает.

Спасибо

Это код, который у меня есть в .htaccess

 AddHandler application/x-httpd-php54 .php .php5 .php4 .php3  

RewriteEngine On
RewriteCond %{HTTP_HOST} ^bepo.co.il$ [NC]
RewriteRule ^(.*)$ http://www.website.com/$1 [L,R=301]

errorDocument 404 http://www.website.com

Options -Indexes


RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}s([^.] ).php [NC]
RewriteRule ^ %1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [NC,L]
  

Комментарии:

1. У вас это I want this url задом наперед (но я страдаю дислексией, поэтому, возможно, я задом наперед) — вы должны поместить «красивый» URL-адрес в браузер и превратить его в уродливый URL-адрес на сервере. В любом случае вы не можете изменить URL-адрес в браузере без перенаправления.

Ответ №1:

Пожалуйста, попробуйте это переписать:

 RewriteEngine On
RewriteCond %{REQUEST_URI} ^/article$
RewriteCond %{QUERY_STRING} ^a=(.*)
RewriteRule ^(.*)$ /%1? [L,QSA]