2015-04-14 3 views
1

Я пытаюсь и googling часами сейчас и не могу найти решение для моей проблемы. Я хочу переписать:htaccess переписать правило без косой черты

domain.com/profile.php?user=abc> domain.com/abc

Я использую:

RewriteRule ^(.*)/$ /profile.php?user=$1 [L] 

, который работает только с косой чертой в конце. Если я попробую его без косой черты

RewriteRule ^(.*)$ /profile.php?user=$1 [L] 

Я получаю ошибку внутреннего сервера!

Полное .htaccess

ErrorDocument 404 /errors/404.php 
ErrorDocument 500 /errors/500.php 
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC] 
RewriteCond %{REQUEST_URI} !\.(css|jpg|gif|png|jar|js|html|htm|php)$ 
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301] 
RewriteRule ^share/([^/]*)/$ /share/share.php?id=$1 [L] 
RewriteRule ^(.*)/$ /profile.php?user=$1 [L] 
<IfModule mod_deflate.c> 
<FilesMatch "\.(html|php|txt|xml|js|css|svg)$"> 
SetOutputFilter DEFLATE 
</FilesMatch> 
</IfModule> 
BrowserMatch ^Mozilla/4\.0[678] no-gzip 
BrowserMatch \bMSIE\s7 !no-gzip !gzip-only-text/html 

Someboy иметь представление о том, что я делаю не так?

Спасибо, Корнель

ответ

0

С вашей второй попытки, вы получите 500, потому что вы создаете бесконечный цикл:
^(.*)$ будет соответствовать profile.php?user=xxx снова и снова ... Но это не тот случай, когда вы пытаетесь с ^(.*)/$ потому что (не косая черта), это не будет соответствовать profile.php?user=xxx

Вместо этого, вы можете иметь это так

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC] 
RewriteCond %{REQUEST_URI} !\.(css|jpg|gif|png|jar|js|html|htm|php)$ 
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301] 

RewriteRule ^share/([^/]*)/$ /share/share.php?id=$1 [L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)/?$ /profile.php?user=$1 [L] 
+0

Th анки за вашу помощь. С вашей стороны запрос работает правильно, но URL-адрес возвращается к 'profile.php? User = xxx' –

+0

Это странно. Трудно понять, почему, может быть, из-за других правил, которые вы могли бы иметь? Не могли бы вы посмотреть заголовки http и рассказать мне, что происходит при попытке вашей ссылки? –

+0

Хм очень странно, теперь это работает. Есть ли способ получить оба варианта с **/** и без **/** и конца? –

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