【问题标题】:Htaccess rule, convert dash to slash in urlHtaccess 规则,将破折号转换为 url 中的斜杠
【发布时间】:2016-10-05 16:19:25
【问题描述】:

我想将单个(第一个)破折号转换为斜杠。我这里有两个网址:

实际网址: http://localhost/wordpress/accessories-car-alarm-system

应该重定向到 http://localhost/wordpress/accessories/car-alarm-system

我想将此特定网址从第一个转换为第二个。我正在使用此代码,但它无法正常工作。

整个 htaccess 文件:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
RewriteRule ^/?accessories/(.+)$ /accessories-$1 [L,NC]
</IfModule>

# END WordPress  

也试过了:

RewriteRule ^/?accessories/(.+)$ /accessories-$1 [L,NC]

还是不行

【问题讨论】:

    标签: php wordpress apache .htaccess url-rewriting


    【解决方案1】:

    用途:

    RewriteEngine on 
    RewriteRule ^accessories-(.+)$ accessories/$1 [NC,R=301,L]
    

    .htaccess 开头没有/

    【讨论】:

    • 编辑了我的问题,请检查。
    • 您尝试重定向?女巫网址是真的吗?
    • 实际网址:http://localhost/wordpress/accessories-car-alarm-system。应该重定向到http://localhost/wordpress/accessories/car-alarm-system。现在清楚了吗?
    • 太棒了!工作正常。我实际上把这行放在RewriteCond之前。
    【解决方案2】:

    你不能在重写 RewriteTarget 中使用正则表达式,试试

    RewriteRule ^/?accessories/(.+)$ /accessories-$1 [L,NC]
    

    参考:https://httpd.apache.org/docs/current/mod/mod_rewrite.html

    【讨论】:

    • 编辑了我的问题,请检查。
    • 你能解释清楚什么不起作用吗?你要去什么网址,你希望发生什么?
    • 实际网址:http://localhost/wordpress/accessories-car-alarm-system。应该重定向到http://localhost/wordpress/accessories/car-alarm-system。现在清楚了吗?
    • Croises 答案对我有用。这段代码有什么问题吗?
    • 不,答案没有错。我也更新了规则,但在看到接受的规则时回滚了。
    【解决方案3】:

    不应该

    RewriteRule ^/accessories-(.*)$ /accessories/(.*)$
    

    【讨论】:

    • 可以加[NC,L]。
    猜你喜欢
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多