我的网址存在很大问题。我知道如何删除index.php表单url,但问题是我不知道从url中删除“?act =”。
我的链接现在是 http:// localhost / doctrine / public /?act = test ,我想创建它像 http:// localhost / doctrine / public / test < /强>
我当前 .htaccess文件放在 public 文件夹中:
<IfModule mod_rewrite.c>
RewriteEngine On
# Removes index.php from ExpressionEngine URLs
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
我需要帮助如何做到这一点。
答案 0 :(得分:0)
在表达式引擎规则之前,您可以添加:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /doctrine/public/?act=$1 [L]
要将http: //localhost/doctrine/public/test
之类的请求内部重写为/doctrine/public/?act=test
。您需要确保内容中的链接看起来像/doctrine/public/test
而不是带有查询字符串的链接。如果您的控件之外有链接(例如Google索引页面),您可以添加以下内容:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /doctrine/public/?\?act=([^&\ ]+)
Rewrite Rule ^ /doctrine/public/%1? [L,R=301]
将浏览器指向不带查询字符串的URL。
遗憾的是,这与您的表达式引擎网址不兼容。
答案 1 :(得分:0)
使用此代码:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /doctrine/
RewriteRule ^(public)/([^/]+)/?$ $1/?act=$2 [L,QSA,NC]
# Removes index.php from ExpressionEngine URLs
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>