我正在尝试实现一些htaccess重写规则。然而,在htaccess中不是专业人士。
我有一个子域网关(如:.htaccess and rewrite sub domains)
中所述现在我想使用SEO友好的URL。网关有一些子文件夹,在这种情况下是电子邮件。
http://gateway.example.com/email/Param1/Param2/
此网址应重写为http://gateway.example.com/email/index.php?hash=Param1&hash2=Param2。
在电子邮件文件夹中,我创建了一个.htaccess文件,其中包含以下内容:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.* - [L]
RewriteRule ^/(.*)/(.*)/ index.php?hash=$1&hash2=$2
请求http://gateway.example.com/email/Param1/Param2/我现在收到404.规则有什么问题?
答案 0 :(得分:1)
你应该这样做
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?([^/]*)/([^/]*)/ /email/index.php?hash=$1&hash2=$2 [L]
答案 1 :(得分:0)
你可以试试这个。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^/([^/]*)/([^/]*)/ index.php?hash=$1&hash2=$2
*你需要配置apache(httpd)以接受UrlRewrite,方法是将AllowOverride从non更改为all,如下所示:
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>