代码片段 → HTAccess → 子目录 URL 内部重定向到查询字符串 子目录 URL 内部重定向到查询字符串 Chris Coyier 于 2010 年 8 月 5 日 浏览器中的 URL 将是 https://css-tricks.cn/index.php/teachers/a/ 服务器实际渲染的页面将是 https://css-tricks.cn/index.php?search=teachers&sort=a RewriteEngine on RewriteRule ^index/([^/]+)/([^/]+).php /page.php?search=$1&sort=$2 [NC]
我认为你搞错了,浏览器中的 URL 示例与重写规则不匹配。浏览器中的 URL 示例必须是“https://css-tricks.cn/index/teachers/a/”。
我自己尝试过,这个可以工作
https://css-tricks.cn/examples/Rewrite/index.php/teachers/a/b/
而这个不行
https://css-tricks.cn/examples/Rewrite/index/teachers/a/b/
哦,我认为它对我来说唯一有效的理由是,我有一些重写规则可以让我删除 .php 扩展名。
我喜欢更清晰的 URL,但我仍然认为将“index”或“index.php”作为 URL 的一部分几乎没有附加价值。我更喜欢像 https://css-tricks.cn/teachers/a/ 这样的东西。
它是一个更清晰的 URL,更重要的是,它改善了 SEO。
有一个小问题。如果你想链接到网站根目录更深层的内容,它将作为 index.php 中的参数传递。
相反,使用像“search”这样的关键字给自己更多空间。由此产生的 https://css-tricks.cn/search/teachers/a/ 对 SEO 友好,并且你只需要避免一个名为“search”的文件夹。
使用它 https://css-tricks.cn/examples/Rewrite/index.php/teachers/a/b/
很棒,谢谢 Chris。
这正是我一直在寻找的,因为它在基于 PHP 的网站中非常有用,而且对 SEO 友好。
参考 URL 提供了完整的信息。感谢您提供它。
嘿,Chris!
我一直在努力并尝试这些 .htaccess,但我无法像它们工作那样编写它们。我启用了 mod_rewrite,并仔细检查了 .htaccess 文件中 RewriteEngine 是否已开启。
例如,我有一个项目,其中有部分和类别,链接看起来像这样:http://localhost/eshop/index.php?section=fruits&category=apple
如何重写此链接使其看起来像这样:http://localhost/eshop/fruits/apple
我在 WordPress 中也有类似的情况。
我做了一个主题,我在其中为某种内部社交网络制作了一个新引擎,但无论如何。
例如,链接看起来像这样:http://localhost/liepa6vsk/klases/?classroom_id=5&page=gallery
我想让它显示为 http://localhost/liepa6vsk/klases/classroom_name/gallery
我应该在 .htaccess 中写什么来做到这一点,并且仍然不会破坏之前为 WordPress 编写的重写规则?
最后一个问题:当链接中只有 http://localhost/liepa6vsk/klases/?classroom_id=5(作为 http://localhost/liepa6vsk/klases/classroom_name/)时,链接会显示得很好吗?
如果你能解决我的问题,你对我来说就像神一样 :)
@Robertr: 以下代码放在你的 .htaccess 文件中将解决第一个问题
RewriteEngine on #除非重写引擎已经声明
RewriteBase /eshop/ #如果你没有重写基础,它可能会导致子目录问题。
RewriteRule ([^/]+)/([^/]+) index.php?section=$1&category=$2 [NC]
如果我们想让 ?site={siteslug} 重定向到 *.mysite.com 怎么办?
htaccess 文件只在 Apache 服务器上工作,但我目前使用 ASP,它不会通过 IIS 运行此文件。所以还有其他方法来重写我的 URL 吗?
你可以在 Windows IIS 7 或更高版本中使用 web.config 文件。
另请参阅以下链接
http://www.iis.net/download/URLRewrite
http://learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-module/
你也可以直接使用
$_SERVER["PATH_INFO"]
来获取/index.php/
之后的所有内容。谢谢大家
有人可以建议一下,如果我想让用户名成为 URL 的一部分,我应该怎么做?
比如 http://localhost/animeshkumar/
而不是 http://localhost/profile.php?userID=1
其中 userID: 1 在数据库中具有用户名:animeshkumar。
你必须让你的 PHP 搜索用户名而不是 ID。
http://localhost/animeshkumar/
如何在 GoDaddy 服务器上删除 php 扩展名?
OptionMultiviews On 对我无效..:(
“如何在 GoDaddy 服务器上删除 php 扩展名?”
您好,Amit Yadav,
托管提供商无关紧要。
只有你的 Web 主机是否安装了 Apache 服务器才重要。
Apache 服务器支持动态 URL 重写技术(ModURL 重写)
RewriteEngine on
RewriteRule ^index-([^/]+)-([^/]+).php /search.php?search=$teachers&sort=$ohio [NC]
使用上面的代码将重写查询字符串 URL http://yoursite.com/search.php?search=$teachers&sort=$ohio 为
http://yoursite.com/index-teachers-ohio.php
您好,
有人可以在 .htaccess 中帮助我吗?
http://gilltech.in/portfolio/ 在 WordPress 中打开投资组合页面。
但是 http://gilltech.in/portfolio/seowebin-free-seo-tool 显示 404(页面未找到错误),但我希望打开此 URL 时打开相同的页面 http://gilltech.in/portfolio/。
谢谢
RewriteRule ^([a-zA-Z0-9-/]+)/$ sample.php?pageid=$1
jquery 文件无法使用 httaccess 重定向,有人可以帮我一下吗?
您好,如何创建在 Google 搜索结果中显示如下 URL 的 URL?
css-tricks.com › 代码片段 › HTAccess
而不是
stackoverflow.com/questions/…/htaccess-seo-friendly-urls-for-all-subf
URL 应该看起来像 http://localhost/test/url-2.html,但内容应该来自 http://localhost/test/url?p=2
请帮忙。