【问题标题】:Redirection Subfolder Htaccess重定向子文件夹 Htaccess
【发布时间】:2015-03-17 11:04:49
【问题描述】:

我想要使用 htaccess 进行重定向 我有一个帖子名称 wordpressurl/curious 以及一个名为好奇的文件夹 我想要的是如果用户尝试访问

  1. wordpressurl/好奇
  2. wordpressurl/好奇/
  3. wordpressurl/curious/子文件夹

    注意 1 和 2 和 3 中的斜杠是子目录。他们都应该只使用 htaccess 给出 404 错误 wordpress 页面

已编辑

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /Wordpress_Work/realestate/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /Wordpress_Work/realestate/index.php [L]
</IfModule>

# END WordPress

【问题讨论】:

  • 我编辑了我的问题并添加了我当前的 htaccess

标签: .htaccess redirect http-status-code-404


【解决方案1】:

您可以通过进行如下所示的更改来访问与 curious 目录相同的 wordpress 帖子。将 curious 更改为您的实际目录/帖子。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /Wordpress_Work/realestate/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f

#add an OR
RewriteCond %{REQUEST_FILENAME} !-d [OR]
#OR if the URI is curious or curious/ or curious/subfolder
RewriteCond %{REQUEST_URI} ^/Wordpress_Work/realestate/curious(/.*)?$ 

RewriteRule . /Wordpress_Work/realestate/index.php [L]
</IfModule>

【讨论】:

  • 访问 /curious 被重定向到 /curious/ 并且 /curious/ 被视为文件夹,但对于子文件夹,这工作正常。你能帮忙吗?
  • 当我请求 /curious 时,没有重定向,尽管浏览器确实插入了斜杠以提供 /curious/,正如您所描述的那样。 /curious/curious/ 也给出相同的结果。您的 .htaccess 文件中是否还有其他规则,您能否给我完整的 url,用于测试适用于 subfolder 但不适用于 curious/?
  • 我有一个子文件夹 xyz 和子文件夹 xyza 这里是链接 creativescripters.com/samples/staging/xyz creativescripters.com/samples/staging/xyz/xyza 有相同名称的帖子 xyz 和 xyza my htaccess RewriteEngine On RewriteBase /samples/staging/ RewriteRule ^index \.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d #add an OR RewriteCond %{REQUEST_FILENAME} !-d [OR] #OR if the URI is xyz or xyz/ or xyz/子文件夹 RewriteCond %{REQUEST_URI} ^/samples/staging/xyz(/.+)?$ RewriteRule 。 /samples/staging/index.php [L]
  • 我用* 替换了+,所以好奇之后的内容是可选的。尝试对您的文件进行相同的更改,即RewriteCond %{REQUEST_URI} ^/samples/staging/xyz(/.*)?$ ,它应该可以工作
  • 这很奇怪:当我在您的网站上尝试 http://creativescripters.com/samples/staging/xyz/http://creativescripters.com/samples/staging/xyz 时,我得到一个 WordPress 页面,大概是因为它被重写为 index.php。您是否得到相同的结果,这是您想要的吗?如果没有,请告诉我结果或什么不符合您的预期。
【解决方案2】:

如果您输入RewriteCond %{REQUEST_FILENAME} !-d,则页面和物理目录的名称不能相同。这就是使用它的意义所在。

尝试跳过rewritecond,尽管我以前从未尝试过。对我来说,我会更改页面名称或添加后缀。

【讨论】:

  • 有没有可能我们访问的不是文件夹而是wordpress页面。例如,我有一个名为 test 的文件夹以及我想要的 post test 如果用户尝试访问 /test/ 它应该显示 wordpress post 而不是目录
  • 我不知道,抱歉。我理解 htaccess 的方式是对物理文件夹/文件顺序以外的 url 进行例外处理,例如调用控件或使 2 个 url 最终出现在同一页面上。在您的情况下,1 个 url 有 2 个可能的目标。
猜你喜欢
  • 2011-02-12
  • 1970-01-01
  • 2021-06-13
  • 2017-09-08
  • 2014-06-01
  • 2011-10-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多