Heim >Backend-Entwicklung >PHP-Tutorial >在CI htaccess里面如何写这个重写规则?

在CI htaccess里面如何写这个重写规则?

WBOY
WBOYOriginal
2016-06-06 20:25:581097Durchsuche

我目前使用的是CodeIgniter,apache服务器

我现在想要的效果是

http://p.com/?p=1545 可以解析到 http://p.com/main/index?p=1545

一直没写成功,求指教下

这是我写的:

<code><ifmodule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^\?p=(\w+)$ /main/index?p=$1 [QSA,PT,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</ifmodule></code>

回复内容:

我目前使用的是CodeIgniter,apache服务器

我现在想要的效果是

http://p.com/?p=1545 可以解析到 http://p.com/main/index?p=1545

一直没写成功,求指教下

这是我写的:

<code><ifmodule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^\?p=(\w+)$ /main/index?p=$1 [QSA,PT,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</ifmodule></code>

在Rewrite中默认规则收集是不带参数的,就是问好后面的部分,所以你的需求可以转换为这样:

/ -> /main/index

对应的Rewrite 规则为:

<code><ifmodule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^/$ /main/index [QSA,PT,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</ifmodule>
</code>

请测试

<code><ifmodule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /main/index/$1 [L]
</ifmodule></code>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn