.htaccess mod_重写,以便从URL中删除/隐藏特定目录,但仍显示内容

.htaccess mod_重写,以便从URL中删除/隐藏特定目录,但仍显示内容,.htaccess,url,mod-rewrite,directory,.htaccess,Url,Mod Rewrite,Directory,我想在.htaccess中为我的站点创建一个重写,这样当用户请求URL a时,内容来自URL B,但用户仍然将URL视为URL a 例如,假设我在mydomain.com/projects/project-example上有内容。我希望用户能够询问mydomain.com/project-example,仍然可以在地址栏中看到该URL,但浏览器应该显示mydomain.com/projects/project-example中的内容 我已经浏览了几个.htaccess重写技巧和常见问题,但不幸的

我想在.htaccess中为我的站点创建一个重写,这样当用户请求URL a时,内容来自URL B,但用户仍然将URL视为URL a

例如,假设我在mydomain.com/projects/project-example上有内容。我希望用户能够询问mydomain.com/project-example,仍然可以在地址栏中看到该URL,但浏览器应该显示mydomain.com/projects/project-example中的内容

我已经浏览了几个.htaccess重写技巧和常见问题,但不幸的是,它们似乎都没有为我上面描述的内容提供解决方案。并非我域中的所有内容都来自/projects/目录,因此我认为重写应该首先检查页面是否存在,这样就不会将/projects/附加到每个url。我真的被难住了


如果重写不是我所需要的,或者如果这个问题有一个简单的解决方案,我很乐意听你这么说。

本教程应该包含你所需要的一切,包括准确回答你的问题:。这可能只是一个术语问题

例如,假设我在mydomain.com/projects/project-example上有内容。我希望用户能够询问mydomain.com/project-example,仍然可以在地址栏中看到该URL,但浏览器应该显示mydomain.com/projects/project-example中的内容

比如:

RewriteRule ^project-example$ /projects/project-example [L]
当有人请求并且URI
/project example
在内部被重写为
/projects/project example
时。请注意,当它位于.htaccess文件中时,URI
/project example
会在匹配时删除前导斜杠

如果您有一个stuff目录,您可以使用正则表达式和反向引用,例如,您希望对的任何请求都映射到
/internal/stuff/

RewriteRule ^stuff/(.*)$ /internal/stuff/$1 [L]

因此,对等的请求将被重写为
/internal/stuff/file1.html
/internal/stuff/image1.png
,等等。

本教程应包含您需要的所有内容,包括准确解决您的问题:。这可能只是一个术语问题

例如,假设我在mydomain.com/projects/project-example上有内容。我希望用户能够询问mydomain.com/project-example,仍然可以在地址栏中看到该URL,但浏览器应该显示mydomain.com/projects/project-example中的内容

比如:

RewriteRule ^project-example$ /projects/project-example [L]
当有人请求并且URI
/project example
在内部被重写为
/projects/project example
时。请注意,当它位于.htaccess文件中时,URI
/project example
会在匹配时删除前导斜杠

如果您有一个stuff目录,您可以使用正则表达式和反向引用,例如,您希望对的任何请求都映射到
/internal/stuff/

RewriteRule ^stuff/(.*)$ /internal/stuff/$1 [L]

因此,请求等将被重写为
/internal/stuff/file1.html
/internal/stuff/image1.png
,等等。

您提供的代码示例(
RewriteRule^project example$/projects/project example[L]
)在请求
/project-example
时,用于显示
/projects/project-example
中的内容,但是它的工作方式就像我希望重定向到工作状态一样。重写后,浏览器中显示的URI是
mydomain.com/projects/project example
,而不是
mydomain.com/project example
。也许有什么干扰了我,或者我错过了什么?我会继续研究和阅读你提供的重写指南,看看我是否能理解它。谢谢听起来好像有一个尾随斜杠的问题,apache希望将看起来像目录的东西重定向到一个有尾随斜杠的目录,如果它丢失了。尝试向规则添加尾部斜杠:
RewriteRule^project example/$/projects/project example/[L]
您提供的代码示例(
RewriteRule^project example$/project/project example[L]
)用于在请求
/project example
时显示
/project/project example
处的内容,然而,它的工作方式就像我希望重定向到工作状态一样。重写后,浏览器中显示的URI是
mydomain.com/projects/project example
,而不是
mydomain.com/project example
。也许有什么干扰了我,或者我错过了什么?我会继续研究和阅读你提供的重写指南,看看我是否能理解它。谢谢听起来好像有一个尾随斜杠的问题,apache希望将看起来像目录的东西重定向到一个有尾随斜杠的目录,如果它丢失了。尝试向规则添加尾部斜杠:
RewriteRule^project example/$/projects/project example/[L]