2013-07-16 2 views
1

Здравствуйте, вот что я пытаюсь сделать: , если кто-то отправляется на сайт site.com/myusername, они отправляются на сайт.com/index.php?a=profile. & u = myusernameкак перенаправить короткий URL-адрес в файл php с параметрами

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

вот мой подарок .htaccess:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{request_filename} -f [OR] 
RewriteCond %{request_filename} -d 
RewriteRule^- [L] 

RewriteRule ^(([^/]*)+)(/([^/]{0,32})(/.+)?)?$ /index.php?a=$1&q=$3 [L,QSA] 

RewriteRule ^(.+?)/?$ /index.php?a=profile&u=$1 [L,QSA] 
+0

http://stackoverflow.com/questions/3086325/using-mod-rewrite-to-hide-php-from-the-end-of-urls – Notepad

+1

http://stackoverflow.com/questions/ 16388959/url-rewriting-with-php вам следует попытаться найти существующие сообщения. – insanebits

+0

Загружает другие сообщения здесь и в других местах о том, как переписывать URL-адреса. Попробуйте научиться использовать инструменты поиска, и вы найдете разработку намного проще. – Anigel

ответ

2

Включение mod_rewrite и .htaccess через httpd.conf, а затем поместить этот код в ваш .htaccess под DOCUMENT_ROOT каталоге:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

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

hello anubhava. уже существует: RewriteCond% {request_filename} -f RewriteRule^(. *) $ 1 [L] RewriteRule^(([^ /] *) +) (/ ([^ /] {0,32}) (/.+)?)?$ index.php? a = $ 1 & q = $ 3 [L] вверху, который используется. можете ли вы редактировать код, пожалуйста? потому что, когда я добавил ваш под ним, он не работал. – cppit

+0

Похоже, вы его работали. Если вы все еще сталкиваетесь с проблемами, pls предоставляют ваш текущий .htaccess в вашем вопросе (а не в комментариях). – anubhava

+0

проверьте пожалуйста. Я добавил его – cppit

1

Если URL-адрес является таким, как указано, вы можете сделать что-то вроде

if (!isset($_REQUEST['u'])) { 

$x = $_SERVER['REQUEST_URI']; 
$y = str_replace('?', '', $x); 
$z = str_replace('/', '', $y); 
header("Location: ?a=profile&u=$z"); } 

не очень хорошее решение, хотя, но это было то, что я мог думать of..if вы хотите сделать это в PHP ..

0

Я знаю, что у вас уже есть ответ. Но я просто подумал об этом раньше часа. Но моя системная проблема, поэтому я отправляю ее позже. Это также один из способов сделать.

Options +FollowSymlinks 
RewriteEngine On 
RewriteBase/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-zA-Z0-9_-]+)$ /index.php?a=profile&q=$1 
Смежные вопросы