2013-11-12 3 views
1

В основном я создал сайт PHP, который использует API другого веб-сайта для сбора данных. Моя проблема в том, что я получаю Error 404.3 Слэш в .htaccess URL rewrite

Я добавил коды ниже .htaccess

RewriteRule ^sort/(.*) index.php?by=$1 

это сделало website.com/sort/gender работу!

Но у меня есть еще одно имя страницы user.php я добавил

RewriteRule ^profile/(.*) user.php?name=$1 

Чтобы website.com/profile/username

Но я хочу показать

website.com/profile/username/bookmarks 

Вместо того, чтобы

website.com/profile/username?by=bookmarks 

Мой Полный код .htaccess ниже:

RewriteEngine on 
Options +FollowSymLinks -MultiViews 
RewriteBase/
ErrorDocument 404 /404.php 
RewriteRule ^sort/(.*) index.php?by=$1 
RewriteRule ^profile/(.*) user.php?name=$1 
RewriteRule ^privacy/?$ privacy.php [NC,L] 

ответ

0

У вас есть какие-то недостающие флаги и неправильное регулярное выражение в существующих правил перезаписи ,

Ваше полное .htaccess будет выглядеть так:

ErrorDocument 404 /404.php 

RewriteEngine on 
Options +FollowSymLinks -MultiViews 
RewriteBase/

RewriteRule ^sort/([^/]+)/?$ index.php?by=$1 [L,NC,QSA] 

RewriteRule ^(profile)/([^/]+)/([^/]+)/?$ $1/$2?by=$3 [L,NC,QSA] 

RewriteRule ^profile/([^/]+)/?$ user.php?name=$1 [L,NC,QSA] 

RewriteRule ^privacy/?$ privacy.php [NC,L,QSA] 
0

Вы можете просто добавить еще один RewriteRule 2 маски в нем, как это:

RewriteRule ^profile/(.*)/(.*) user.php?name=$1&by=$2 
RewriteRule ^profile/(.*) user.php?name=$1