2013-12-07 4 views
2

мой url формат mysite/profile/?theusername скрыть расширение php, im пытается скрыть знак вопроса в URL-адресе, чтобы URL-адрес понравился mysite/profile/theusername, посмотрел несколько сообщений о том, что я должен делать, это добавить внешний перенаправление, а затем внутренний вперед в htaccess, попробовал много кода, все еще не может заставить его работать. это то, что я есть сейчас:htacess rewrite url to hide php question mark

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase/ 

# Resolve .php file for extensionless php urls 
RewriteRule ^([^/.]+)$ $1.php [L] 
+1

Это можно ответить здесь, если вы игнорируете 'RewriteCond {QUERY_STRING} id' http://stackoverflow.com/questions/4881410/apache-htaccess-how-to-remove-question-mark-from-url-if-not-id – Popnoodles

+0

@popnoodles Я думаю, что это для перенаправления ссылки на верхний каталог, например/foo /? bar, на/foo –

ответ

1

Держите .htaccess, как это:

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase /profile/ 

# new rules 
RewriteCond %{THE_REQUEST} \s/+profile/?(?:index\.php)?\?([^\s&]+) [NC] 
RewriteRule^%1? [R=302,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/.]+)/?$ index.php?$1 [L,QSA] 

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

этот работает для скрытия расширения php, но у моего url все еще есть вопросительный знак, как/profile /? theusername –

+0

ok проверить обновленный ответ сейчас. – anubhava

+0

:(url становится:/profile ////////////////////, это может помочь, фактический url: mysite/profile/index.php? Theusername с htaccess hiding расширение становится/profile /? theusername –