URL в новый формат - PullRequest
       20

URL в новый формат

0 голосов
/ 05 апреля 2011

Ниже приведен мой файл .htaccess. Он не работает на локальном хосте apache (www является корневым каталогом на C: / apache / www) "url" является каталогом, и я хочу вывод, подобный этому

http://localhost/url/index.php?username=shah в http://localhost/url/shah

Я изменяю файл хоста Windows 127.0.0.1 localhost & также включить mod_rewrite в файле httpd.conf & AllowOverride none для AllowOverride All & корневой каталог на C: / apache / www

//==============================HTaccess==================================//
 Options:
# -MultiViews: Turns off multiviews so it doesn't interfer with our rewrite rules
# -Indexes: Stop directory listings
# +FollowSymlinks: Let out rewrite rules work

Options -MultiViews -Indexes +FollowSymlinks

<IfModule mod_security.c>
    # Turn off mod_security filtering.
    # SecFilterEngine Off

    # The below probably isn't needed, but better safe than sorry.
    SecFilterScanPOST Off
</IfModule>

ErrorDocument 404 /url/404.php

<IfModule mod_php5.c>
    php_value register_globals 0
    php_value magic_quotes_gpc 0
    php_value session.auto_start 0
    php_value safe_mode 0
</IfModule>

<IfModule sapi_apache2.c>
    php_value register_globals 0
    php_value magic_quotes_gpc 0
    php_value session.auto_start 0
    php_value safe_mode 0
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /url/
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?username=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?username=$1

#RewriteRule ^view-content/([^/]*)/([^/]*)\.html$ content.php?pageid=$1&title=$2 [L]

</IfModule>

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE application/x-javascript text/css text/html text/xml
</IfModule>
//==============================HTaccess==================================//

Скажите, пожалуйста, что делать?

Ответы [ 2 ]

0 голосов
/ 06 апреля 2011

Если вы действительно хотите перенаправить запрос /url/index.php?username=shah извне на /url/shah, попробуйте следующее правило:

RewriteCond %{QUERY_STRING} ^(([^&]*&)*?)username=([^&]+)&*(.*)
RewriteRule ^index\.php$ /url/%3?%1%4 [L,R=301]

В противном случае для обратного направления:

RewriteCond $0 !=index.php
RewriteRule ^[^/]+$ index.php?username=$0 [L,QSA]
0 голосов
/ 05 апреля 2011

Попробуйте:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /url/
RewriteCond %{QUERY_STRING} username\=(.*)
RewriteRule index\.php$ /url/%1

Надеюсь, это поможет вам ...:)

...