Url Rewrite не работает на сервере Apache Godaddy - PullRequest
0 голосов
/ 26 мая 2018

Я размещаю свой сайт на веб-сервере godaddy и пытаюсь использовать файл htaccess для перезаписи некоторых URL, но это не работает.Помощь будет очень признателен.

В основном я хотел бы заменить URL-адрес, как:

/photographers/photographer.php?id=1&name=john-doe

в:

/photographer/john-doe

Очевидно, я бы также хотел, чтобы мой сервер перенаправлял изнутри наоборот.

Я попробовал следующий код в моем .htaccess.

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule    ^photographer/([A-Za-z-]+)/?$ photographers/photographer.php?id=$2&name=$1 [NC,L]

Ответы [ 3 ]

0 голосов
/ 26 мая 2018

Вы не можете сделать это без идентификатора.

Добавить идентификатор в URL:

/photographer/john-doe/1

И этот .htaccess:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^photographer/([A-Za-z-]+)/(\d+)/?$ photographers/photographer.php?id=$2&name=$1 [NC,L]
0 голосов
/ 26 мая 2018

Попробуйте это.только одна строка:)

RewriteRule ^(photographer)/(.*)$ /photographers/photographer.php?id=1&name=$2 [L]
0 голосов
/ 26 мая 2018

Вам нужно использовать флаг Query String Append (QSA)

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^photographer/([A-Za-z-]+)/?$ photographers/photographer.php?id=$2&name=$1 [QSA,NC,L]

Вы также можете попробовать удалить строку RewriteBase, чтобы посмотреть, поможет ли это тоже.

...