mod_rewrite网址

Lou*_*ost 5 .htaccess mod-rewrite

我想重写网址,以便有人去:

url.com/directory1/directory2 
Run Code Online (Sandbox Code Playgroud)

他在浏览器地址栏中看到了URL,但实际上以下URL显示了该文本

url.com/index.php/directory1/directory2 
Run Code Online (Sandbox Code Playgroud)

所以基本上,URL url.com/directory1/directory2去了url.com/index.php/directory1/directory2

我怎么能用.htaccess和/或mod_rewrite呢?那个重写规则是什么?

Boo*_*eus 4

在您的 .htacces 文件中使用:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/(.*)(\/?)$ /index.php/$1/$2 [NC,QSA,L]
Run Code Online (Sandbox Code Playgroud)

或者在你的 httpd.conf 中

<VirtualHost *:80>
    DocumentRoot "/var/www/"
    ServerName www.url.com   
    ServerAlias www.url.com
    <Directory /path/to/www/> 
        RewriteEngine on
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d 
        RewriteRule ^(.*)/(.*)(\/?)$ /index.php/$1/$2 [NC,QSA,L]
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

如果您使用 PHP:

$_SERVER['REQUEST_URI']将会有/asd/asd