.HTACCESS url rewrite-4个简单的重写规则不起作用(GoDaddy+;WordPress)

.HTACCESS url rewrite-4个简单的重写规则不起作用(GoDaddy+;WordPress),wordpress,apache,.htaccess,mod-rewrite,url-rewriting,Wordpress,Apache,.htaccess,Mod Rewrite,Url Rewriting,我想知道我的重写规则是否不正确,因为它们不适用于我的Godaddy共享服务器? 我有四个非常基本的.htaccess URL重写规则。 每当用户键入/单击链接时: 漂亮的SEO(理想)链接http://www.electriccarlos.com/albums/ 实际上是http://www.electriccarlos.com/type/audio/ 漂亮的SEO(理想)链接http://www.electriccarlos.com/discography/ 实际上是http://www.el

我想知道我的重写规则是否不正确,因为它们不适用于我的Godaddy共享服务器?

我有四个非常基本的.htaccess URL重写规则。 每当用户键入/单击链接时:

  • 漂亮的SEO(理想)链接
    http://www.electriccarlos.com/albums/

    实际上是
    http://www.electriccarlos.com/type/audio/

  • 漂亮的SEO(理想)链接
    http://www.electriccarlos.com/discography/

    实际上是
    http://www.electriccarlos.com/type/audio/

  • 漂亮的SEO(理想)链接
    http://www.electriccarlos.com/gallery/

    实际上是
    http://www.electriccarlos.com/type/gallery/

  • 漂亮的SEO(理想)链接
    http://www.electriccarlos.com/videos/

    实际上是
    http://www.electriccarlos.com/type/video/


  • .htaccess文件:
    #开始奥马尔·尤维拉
    重新启动发动机
    #相册
    重写规则^albums/?$type/audio/[NC,L]
    重写规则^discography/?$type/audio/[NC,L]
    #画廊
    重写规则^gallery/?$type/gallery/[NC,L]
    #录像带
    重写规则^videos/?$type/video/[NC,L]
    #结束奥马尔尤维拉
    #开始WordPress
    重新启动发动机
    重写基/
    重写规则^index\.php$-[L]
    重写cond%{REQUEST_FILENAME}-F
    重写cond%{REQUEST_FILENAME}-D
    重写规则/index.php[L]
    #结束WordPress
    


    .htaccess
    文件已正确配置,并且
    重定向匹配
    处于活动状态

    好吧,你在顶级规则中所做的任何事情都会被WordPress:
    RewriteRule覆盖/index.php[L]

    它将所有内容重写为
    /index.php
    ,现有文件和目录除外


    你必须对WordPress说得很好,并要求它为你做这件事!如果你不知道怎么做,我建议你再问一个关于如何用WordPress做到这一点的问题。

    好吧,你在你的首要规则中所做的任何事情都会被WordPress:
    重写规则所覆盖/index.php[L]

    它将所有内容重写为
    /index.php
    ,现有文件和目录除外


    你必须对WordPress说得很好,并要求它为你做这件事!如果您不知道如何使用WordPress,我建议您再问一个问题。您是否确认mod_rewrite已启用/正在工作
    RedirectMatch
    是一个mod_别名指令(默认情况下启用)。你也不应该混合重定向/重写两个模块。我正在运行WordPress。这是重定向工作啊,如果你有WP,你有其他指令吗?您将这些指令放在哪里?我们可能需要查看您的整个
    .htaccess
    文件。这些页面是否在WordPress中?@w3dk使用说明更新了问题(htaccess部分)@w3dk,我可以确认mod_rewrite处于活动状态。您确认mod_rewrite处于启用/工作状态了吗
    RedirectMatch
    是一个mod_别名指令(默认情况下启用)。你也不应该混合重定向/重写两个模块。我正在运行WordPress。这是重定向工作啊,如果你有WP,你有其他指令吗?您将这些指令放在哪里?我们可能需要查看您的整个
    .htaccess
    文件。这些页面是否在WordPress中?@w3dk更新了问题(htaccess部分)@w3dk通过使用说明,我可以确认mod_rewrite处于活动状态我同意(+1),除非有其他方法在WordPress中路由URL?“我假设WordPress正在处理原始请求,而不是请求URI”-令人困惑的是,
    request\u URI
    PHP变量(即
    $\u SERVER['request\u URI']
    )是原始请求,而不是
    request\u URI
    Apache变量。在这种情况下,PHP可能会访问
    重定向\u URL
    ,但我认为WP不会这样做?啊,很有趣。我想不是因为OP得到的结果。在这些情况下,通常最好使用CMS,这样内部链接也就正确了。如果CMS继续生成旧的URL,那么让你的好URL正常工作就没什么好处了。我更新了答案,删除了对
    请求URI
    的引用,但实际上
    重定向URL
    也不好。我刚刚试过,它还包含原始请求。但是无论如何,整个想法都没有意义,无论使用什么,都只会包含
    index.php
    SCRIPT\u NAME
    ),因为我们试图获取一个中间重写的URI,它不需要从URL处理中传递(可能有很多)。使用WP是唯一的方法。是的,我不认为任何PHP变量是真正合适/可靠的。然而,在这个特定的实例中(内部重写之后)
    $\u服务器['REDIRECT\u URL']
    应该包含
    /type/audio
    URL(?)——尽管通常它根本没有设置(它主要用于在触发Apache ErrorDocument时读取请求的URL)。这是我的50c技巧,类似于@w3dk所说的,如果服务器已经处理了任何wp url,则任何以下请求(例如
    domain.com/type/whatever/
    )都可以重写为
    domain.com/whatever/
    。注:我是htaccess Beguinner,我同意(+1),除非有其他方法在WordPress中路由URL?“我假设WordPress正在处理原始请求,而不是请求URI”-令人困惑的是,
    request\u URI
    PHP变量(即
    $\u SERVER['request\u URI']
    )是原始请求,而不是
    request\u URI
    Apache变量。在这种情况下,PHP可能会访问
    重定向\u URL
    ,但我认为WP不会这样做?啊,很有趣。我想不是因为手术的结果
    # BEGIN Omar Juvera
    RewriteEngine On
        # albums
    RewriteRule    ^albums/?$       type/audio/     [NC,L]
    RewriteRule    ^discography/?$  type/audio/     [NC,L]
        # gallery
    RewriteRule    ^gallery/?$      type/gallery/   [NC,L]
        # videos
    RewriteRule    ^videos/?$       type/video/     [NC,L]
    # END Omar Juvera
    
    
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress