htaccess将控制器/动作转换为controller_action.html

时间:2014-09-05 21:49:37

标签: php apache .htaccess

我的.htaccess现在配置为:

AddDefaultCharset UTF-8

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</IfModule>

当我访问我的控制器/动作时,它运行良好。但现在我需要访问controller_action.html并获得相同的路由。我找不到这样的东西。

1 个答案:

答案 0 :(得分:1)

您可以将此代码放入htaccess

AddDefaultCharset UTF-8

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.+)_(.+)\.html$ /index.php?_url=/$1/$2 [L]

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /index.php?_url=/$1 [QSA,L]
</IfModule>

上面的代码用于一次性重写。

如果你想两次这样做(将/controller_action.html重写为/controller/action,然后重写为/index.php?_url=/controller/action

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)_(.+)\.html$ /$1/$2 [L]