2015-11-10 2 views
1

Пробовал несколько решений из Интернета, бутон не работал для меня. Поэтому вот моя ситуация, и я был бы очень рад, если кто-то может мне помочь.Код перезаписи не работает

Это мой httpd.conf файл основной информации по данному вопросу:

<Directory /> 
    Options FollowSymLinks 
    AllowOverride All 
</Directory> 

<Directory "/var/www/html"> 
    Options Indexes FollowSymLinks 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
</Directory> 

Это мой .htaccess информация:

Options +FollowSymLinks 
RewriteEngine On 
RewriteRule ^blog([^/]*)/([^/]*)$ /post.php?bID=$1&title=$2 [L] 

Цель состояла в том, чтобы переписать

от: www.site.com/post.php?bID=7&title=blog-title : www.site.com/blog7/blog-title

Как когда он не работает (страница загружается нормально, но URL-адрес не изменяется)! Я создал правило перезаписи через http://www.generateit.net/mod-rewrite/index.php, так что все должно быть в порядке.


Самое странное в том, что при попытке других правил, как сокрытие расширения PHP работает нормально, так что правила .htaccess, по-видимому работают.

## hide .php extension 
# To externally redirect /dir/foo.php to /dir/foo 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] 
RewriteRule^%1 [R=302,L] 

# To internally forward /dir/foo to /dir/foo.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*?)/?$ $1.php [L] 

Кто-нибудь догадывается?

+0

Что вы имеете в виду под фразой «не работает»? Какая у вас ошибка? Что произошло в apache error.log? –

+0

btw, http://htaccess.madewithlove.be/ - хорошее место для тестирования .htaccess –

+0

спасибо за отзыв! @ hjpotter92 ответ работал для меня – czmarc

ответ

0

Используйте это правило:

RewriteCond %{THE_REQUEST} ^GET\ /post.php\?bID=(\d+)&title=([^\s&]+) [NC] 
RewriteRule^/blog%1/%2? [R=302,L,NE] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^blog(\d+)/(.*)/?$ /post.php?bID=$1&title=$2 [NE,L] 
+0

большое спасибо! это сработало, знаете ли вы, почему это не работало с моим правилом перезаписи? также, для следующих правил мне нужно повторить повторную запись? ура – czmarc

0

Я не вижу никаких проблем с правилами, попробуйте отключить mod_negotiation MultiViews:

Options -Multiviews 

перед использованием любого RewriteRule.

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