htaccess 简单重写规则不起作用

htaccess simple rewrite rule doesn't work

我从来没有重写过规则,我在 google 尝试并找到的所有内容都不起作用。尤其是创建多个重写规则对我来说很难,因为我不知道正确的语法是怎样的以及正确的实现是什么样的(1 个重写条件或多个类似的问题)。

因此,我很乐意为接下来的尝试得到一个结果:

https://www.domain.com/our_accounts.php -> https://www.domain.com/accounts

http -> https 规则已经生效。也许我的重写规则也有问题,因为我可能需要在我的 https 规则之前添加它们??希望大家能帮帮我。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    # First rewrite to HTTPS:
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    # Now, rewrite any request to the wrong domain to use www.
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    # Rules for readable URLs
    RewriteCond %{THE_REQUEST} ^.*/index\.php 
    RewriteRule ^(.*)index.php$ / [R=301,L]
    RewriteRule ^accounts$ /our_accounts.php [L]
</IfModule>

以这种方式尝试你的 htaccess 文件。我还将 HTTP 和 www 压缩为一个重写规则。只需将 yoursite.com 替换为您的真实站点即可。

<IfModule mod_rewrite.c>
    RewriteEngine On
     # First rewrite to HTTPS and redirect www:
    RewriteCond %{HTTPS} !^on [OR]
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^(.*)$ https://www.yoursite.com/ [L,R=301]

    RewriteRule ^our_accounts.php$ /accounts [R=301,L]

    # Rules for readable URLs
    RewriteCond %{THE_REQUEST} ^.*/index\.php 
    RewriteRule ^(.*)index.php$ / [R=301,L]
</IfModule>