2014-08-14 2 views
1

Я пытаюсь получить mod_rewrite в моем файле .htaccess, чтобы работать в течение последних нескольких часов, но я не могу его отключить. Файлы .htaccess определенно работают на моем сервере, потому что я использовал их раньше.Mod_rewrite - переписывание URL не работает

Я попытался переписать его с помощью this generator и проверить его на this tool, а также на моем сервере.

URL

мне нужно, чтобы превратить

http://someurl.com/news-detail.html?id=10&news=this-is-an-article

в

http://someurl.com/news/10/this-is-an-article

или

http://someurl.com/10/news/this-is-an-article

Rewrite

Я пробовал:

RewriteEngine On 
RewriteRule ^([^/]*)/news/([^/]*)$ /news-detail.html?id=$1&news=$2 [L] 

и

RewriteEngine on 
RewriteRule /(.*)/news/(.*) news-detail.html?id=$1&news=$2 [L] 

и

RewriteEngine on 
RewriteRule news/([0-9]+)/([a-zA-Z_]+)$ news-detail.html?id=$1&news=$2 [L] 

и многие другие.

Я надеюсь, что кто-то может помочь мне здесь ..

ответ

1

Держите свои правила, как это в корневой .htaccess:

RewriteEngine On 
RewriteBase /dev/hoig/ 

RewriteCond %{THE_REQUEST} /news-detail\.html\?id=([^\s&]+)&news=([^\s&]+) [NC] 
RewriteRule^%1/news/%2? [R=302,L] 

RewriteRule ^([^/]+)/news/([^/]+)/?$ news-detail.html?id=$1&news=$2 [L,NC,QSA] 

Это будет поддерживать /10/news/this-is-an-article URI структуру для симпатичной URL.

+0

Благодарим за быстрый ответ. Но я не могу заставить его работать с этим кодом, он дает мне 500 (Internal Server Error) –

+0

Появилась опечатка, она исправлена. Попробуйте обновить код. – anubhava

+0

Ну, во-первых, это не дает мне 500 ошибок. Но это тоже не работает. –

2

Просьба проверить/добавить RewriteBase в файл .htaccess. Также проверьте, разрешено ли htaccess переписывать или нет. Синтаксис ниже

RewriteEngine on 
RewriteBase /flodername/ 
RewriteRule ^urlinbrowser/(.*)/(.*)$ filename.php?first_param=$1&secondparam=$2 [L] 
Смежные вопросы