天道酬勤,学无止境

对第二个斜杠后带有额外字符的 URL 进行 mod-rewrite(mod-rewrite for URLs with extra characters after second slash)

问题

如何返回404 error与后第二个加字符的所有URL /通过htaccess的。

例如:

http://www.example.com/blah-blah/不重定向(第二个/之后没有额外的字符)

例如:

http://www.example.com/blah-blah/blah-blah重定向到 404

例如:

http://www.example.com/blah-blah/blah-blah/重定向到 404

例4:

http://www.example.com/blah-blah/blah-blah/blah-blah重定向到 404

例如g5:

http://www.example.com/blah-blah/blah-blah/blah-blah/重定向到 404

我试过了,但不适用于 e.g3 & e.g5(以斜杠结尾的 URL):

ErrorDocument 404 /404
RewriteBase /
RewriteRule ^[^/]+/.+ - [R=404,L]
回答1

为了仅在第二个斜杠后有一些字符时重定向请求,您需要此重写规则

ErrorDocument 404 /404
RewriteBase /
RewriteRule .*/.+ - [R=404,L]

PS:当您在正则表达式后使用破折号时,它表示将匹配项传递给文件系统。

编辑:此模式 /.*/.+ 与下一个示例匹配,但我忘记了 RewriteBase 指令,因此您需要删除模式中的第一个斜杠(我之前编辑过 RewriteRule)

  • /blah-blah/ => 不匹配
  • /blah-blah/blah-blah => 匹配
  • /blah-blah/blah-blah/ => 匹配
  • /blah-blah/blah-blah/blah-blah/ => 匹配

PS:您可以使用此工具来检查您的重写是否有效 rewrite-rule-tester

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Mod-Rewrite还是PHP路由器?(Mod-Rewrite or PHP router?)
    问题 我正在讨论使用以下两个选项之一路由请求: 选项1:使用Mod-Rewrite的简单捕获路线,并将$_GET路线的漏斗写入index.php以加载... #default routing RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^blog/([0-9]+)?$ index.php?rt=blog&params=$1 [L,QSA] // ..more custom routes, and then a default route RewriteRule ^([A-Za-z]+)/([A-Za-z]+)/(.*)?$ index.php?rt=$1/$2&params=$3 [L,QSA] 选项2:只需将请求路由到Front Controller,然后创建一个PHP路由类来处理路由... #default routing RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?rt=$1 [L,QSA] /* --- on front controller, process $_GET['rt'] --- */
  • 通过 mod-rewrite 传递变量类型(Passing variable types though mod-rewrite)
    问题 您好,我遇到了 htaccess mod_rewrite 的问题,也许这里有人可以指出正确的方向。 我的网站有 1 个主文件 [index.php],所有导航都是通过在 url 字符串中传递变量来完成的,例如 index.php?page=about 这与我的 .htaccess [下面] 一起工作正常 domain.com/about 一些页面有第二个变量,例如 index.php?page=event&eventID=42 这也适用于下面的 .htaccess domain.com/event/42 我的问题是我还有其他需要 vars 的页面,例如 index.php?page=news&newsID=4 domain.com/news/42 index.php?page=map&venueID=4 domain.com/map/42 是否有可能做到这一点 ? 提前致谢 .k .htaccess Options +FollowSymLinks RewriteEngine On RewriteRule ^([^/\.]+)/*$ /index.php?page=$1 [L] RewriteRule ^([^/\.]+)/*([^/\.]+)/*$ /index.php?page=$1&eventType=$2 [L] 回答1 当然,只是做 RewriteRule ^([^/
  • .htaccess mod-rewrite 与子文件夹身份验证冲突(.htaccess mod-rewrite conflicting with subfolder auth)
    问题 我有一个站点,它使用 .htaccess 将所有对不存在的文件/文件夹的请求重定向到索引文件: RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule !admin/* index.php [NC,L] 有一个文件夹“admin/”,它在 .htaccess 中有以下内容用于身份验证: AuthType Basic AuthName "admin" AuthUserFile "/path/to/passwd" require valid-user 在“admin/”中添加 auth .htaccess 文件会导致请求被 mod-rewrite 捕获,而不是提供身份验证响应。 我尝试了一些不同的方法来解决这个问题(包括这个:htaccess 重写和身份验证冲突),但无法获得任何购买。 谢谢。 编辑:如果我已经通过验证,重写规则的作品让我进入“管理/”文件夹中。 因此,似乎是身份验证挑战正在做一些奇怪的事情。 回答1 我有同样的问题,我也发现了这个相关的问题:htaccess rewrite and auth conflict
  • htaccess mod-rewrite ~ 如何将 url 从 /pages/pagename.cfm 修改为 /pagename/(htaccess mod-rewrite ~ how to modify url from /pages/pagename.cfm to /pagename/)
    问题 我必须在网站上进行网站结构清理... http://dev.514hebergement.com/ 寻找 htaccess 指令将所有页面 url 重写为更友好的 url 结构,而无需移动文件夹层次结构中的实际页面。 所以 /pages/pagename.cfm 中的每个页面 将其地址重写为 /pagename/ 并同时响应 /pagename/ 和 /pages/pagename.cfm url。 让我们记住我需要页面名是动态的,而不是在 htaccess 指令中硬编码。 非常感谢! 我当前的 htaccess 位于网站的根目录中: Options +FollowSymLinks RewriteEngine on # DROP THE INDEX FILENAME # RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)index\.cfm($|\ |\?) RewriteRule ^ /%1 [R=301,L] RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)INDEX\.CFM($|\ |\?) RewriteRule ^ /%1 [R=301,L] RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)INDEX\.cfm($|\ |\?)
  • Mod-Rewrite REGEX 不工作 Apache(Mod-Rewrite REGEX not working Apache)
    问题 我正在尝试进行以下工作: 当用户使用搜索框时,get 会将用户发送到www.example.com/search/?s=Query+String 发送 GET 请求不是问题,但是,通过RewriteRule获取它是。 在这种情况下,我不确定我的 REGEX 是否正确。 RewriteRule ^search/\?s=(.*[^/])$ search.php?s=$1 [NC,L] 需要发生的是/search/?s=Query+String查询字符串部分必须从那个 url 中取出并通过重写规则发送到search.php?s=Query+String 回答1 来自请求的查询字符串存储在变量%{QUERY_STRING} 。 规则使用%{REQUEST_URI} 。 只需使用QSA标志: RewriteRule ^search/?$ search.php [NC,L,QSA] 在这里测试。
  • 现在我使用 mod-rewrite 需要帮助我的寻呼机 PHP 功能(Need help with my pager PHP function now that I use mod-rewrite)
    问题 我现在卡住了,下面是我的分页代码的一个片段,这是为分页链接构建 URL 的部分,直到现在它工作得非常好,因为现在我正在更改我的整个站点以使用 mod-rewrite 所以在之前页面看起来像这样 http://localhost/?p=mail.inbox&page=2 现在我希望它像这样..我已经有了正则表达式来做到这一点,但我需要改变我的分页正确构建指向新 URL 的链接的方式 http://localhost/mail/inbox/page/2 这是制作旧链接的代码,有关如何用于新链接的任何帮助或想法? 问题是它现在的工作方式是它可以确定 URL 中是否存在其他变量,如果它看到它们,它将确保将它们保留在创建新页面链接时创建的 URL 中,例如 ?p=test&userid= 2&color=green&page=3 它会确保将所有额外的东西保留在它制作的新网址中,只需增加或减少页码 $url_string = "?"; foreach ($_GET as $k => $v) { if ($k != "page") { // <-- the key you don't want, ie "page" if ($url_string != "?") { $url_string .= "&"; // Prepend ampersands nicely } $url_string
  • 参考:mod_rewrite,URL重写和“漂亮链接”说明(Reference: mod_rewrite, URL rewriting and “pretty links” explained)
    问题 “漂亮的链接”是一个经常要求的主题,但是很少对其进行完全解释。 mod_rewrite是创建“漂亮链接”的一种方法,但是它很复杂,语法非常简洁,难以理解,并且该文档假定HTTP具有一定的熟练度。 有人可以简单地解释“漂亮链接”如何工作以及如何使用mod_rewrite创建它们吗? 其他通用名称,别名,干净URL的术语:RESTful URL,用户友好的URL,SEO友好的URL,扩展和MVC URL(可能是用词不当) 回答1 要了解什么是mod_rewrite,首先需要了解Web服务器的工作方式。 Web服务器响应HTTP请求。 最基本的HTTP请求如下所示: GET /foo/bar.html HTTP/1.1 这是浏览器对Web服务器的简单请求,从中请求URL /foo/bar.html 。 需要强调的是,它不请求文件,而仅请求任意URL。 该请求也可能看起来像这样: GET /foo/bar?baz=42 HTTP/1.1 这与对URL的请求一样有效,而且显然与文件无关。 Web服务器是在端口上侦听的应用程序,接受该端口上传入的HTTP请求并返回响应。 Web服务器完全可以自由选择以其认为合适的方式/以您配置为响应的任何方式来响应任何请求。 该响应不是文件,而是HTTP响应,它可能与任何磁盘上的物理文件无关,也可能与之无关。 Web服务器不必是Apache
  • 在 mod-rewrite 中传递和 URL 作为参数(Passing and URL as parameter in mod-rewrite)
    问题 我试图在 mod-rewrite 中将 URL 作为参数传递。 我猜我的正则表达式有问题。 这是我的 .htaccess: <IfModule mod_rewrite.c> RewriteEngine on RewriteRule **^go/((http:\/\/)+[A-Za-z0-9\-]+[\.A-Za-z])/?$** feedmini.php?url=$1 [L] </IfModule> 我想传递的 URL 看起来像http://www.aaaa.com/aaa/?q=v但是当我尝试访问它时 /http://www.aaaa.com/aaa/?q= v 我收到 404 错误页面。 我也试过**^go/([A-Za-z0-9\-\/:]+[\.A-Za-z]+)/?$**但是我通过的 URL 得到像这样:http://www.aaaa.com/aaa/(观察'http:'后的单字符'/'); 有任何想法吗? 提前致谢/Ale 回答1 那么你的第一个问题(在你的第一个代码块中)是你的 Regex 模式将不匹配 URL,因为它只会匹配以 http:// 开头的字符串,然后只包含字母数字或破折号,以单个句号或破折号结尾信。 也许这只是一个错字,那里应该有一个量词,但即便如此,它也无法匹配非常大的百分比或 URL。 这可能看起来有点奇怪,但试试这个
  • 在 mod-rewrite 中传递和 URL 作为参数(Passing and URL as parameter in mod-rewrite)
    问题 我试图在 mod-rewrite 中将 URL 作为参数传递。 我猜我的正则表达式有问题。 这是我的 .htaccess: <IfModule mod_rewrite.c> RewriteEngine on RewriteRule **^go/((http:\/\/)+[A-Za-z0-9\-]+[\.A-Za-z])/?$** feedmini.php?url=$1 [L] </IfModule> 我想传递的 URL 看起来像http://www.aaaa.com/aaa/?q=v但是当我尝试访问它时 /http://www.aaaa.com/aaa/?q= v 我收到 404 错误页面。 我也试过**^go/([A-Za-z0-9\-\/:]+[\.A-Za-z]+)/?$**但是我通过的 URL 得到像这样:http://www.aaaa.com/aaa/(观察'http:'后的单字符'/'); 有任何想法吗? 提前致谢/Ale 回答1 那么你的第一个问题(在你的第一个代码块中)是你的 Regex 模式将不匹配 URL,因为它只会匹配以 http:// 开头的字符串,然后只包含字母数字或破折号,以单个句号或破折号结尾信。 也许这只是一个错字,那里应该有一个量词,但即便如此,它也无法匹配非常大的百分比或 URL。 这可能看起来有点奇怪,但试试这个
  • 在 PHP 中构建 SEO URL 系统的好方法是什么?(What is a good way to have a SEO URL system built up in PHP?)
    问题 我想在我的网站中有“漂亮”和面向 SEO 的 URL。 我已经为这个网站建立了我自己的小框架,现在几乎所有的东西都已经完成了。 我仍然感到困惑的一件事是我将使用的漂亮/SEO URL 系统。 我知道有很多方法可以实现这一点,我正在寻求平衡最佳实践/易于实施的方法。 到目前为止,我正在考虑让站点的所有 URL 指向一个特定的 PHP 文件(假设 index.php),该文件将包含一个文件/URL 字典,将流量定向到正确的文件。 我真的不确定这是否是一个好方法......有人有更好的方法来做到这一点吗? 我真正想避免的唯一一件事就是只在 .htaccess 中执行此操作... 回答1 您将需要一个 .htaccess 文件(但每次添加页面时都不需要更改它): RewriteEngine On #RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L] 现在,在您的index.php您可以访问$_GET['url']请求的 url,将其映射到正确的文件,然后将其包含在内。 注意:将RewriteBase注释放在那里,以防您需要取消注释,因为某些配置需RewriteBase 。
  • Apache Mod-Rewrite入门手册? [关闭](Apache Mod-Rewrite Primers? [closed])
    问题 从目前的情况来看,这个问题不适合我们的问答形式。 我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。 如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我想知道什么是入门/指南/教程/等。 是否在那里学习使用Apache / .htaccess重写URL? 从哪里开始的好地方? 我的主要兴趣是学习如何将某些目录指向其他目录,以及如何使用URL的一部分作为脚本的参数(即“ / some / subdirs / like / this” =>“ script.php?a = some&b = subdirs&c = like&d = this“)。 回答1 我发现这非常有用:http://www.addedbytes.com/apache/url-rewriting-for-beginners/ 回答2 我会直奔马的嘴: http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html 但作为较温和的介绍: http://www.workingwith.me.uk/articles/scripting/mod_rewrite 回答3 Apache Documentation站点对使用mod_rewrite进行了很好的介绍。 它涵盖了指令的工作方式
  • 如何将PHP + Slim URL进行Mod-rewrite到子目录(how to Mod-rewrite php + Slim url to sub-directory)
    问题 我正在使用Slim 2.4和php 5.3。 我在本地主机中的目录结构是这样的: 网络根应用名称原料药 v1 包括 Slim <-Slim框架工具 .htaccess(#1) index.php(#1) 资产的CSS js img .htaccess(#2) index.php(#2) 我想访问localhost / AppName / v1 ,它将打开localhost / AppName / API / v1 。 随着更多参数被忽略,此功能部分起作用。 当我尝试获取localhost / AppName / v1 / anyOtherVariable时,它仅打开localhost / AppName / API / v1 。 现在,#1 index.php包含所有Slim代码(路由和内容),但#1 .htaccess为空。 #2 index.php包含一个简单的静态主页,其中包含一些链接。 在#2 .htaccess中,我写了 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^v1(/.*)?$ API/v1/index.php$1 [QSA,L] </IfModule>
  • 使用Mod-Rewrite时是否有负面影响?(Any negative impacts when using Mod-Rewrite?)
    问题 我知道mod-rewrite有很多积极的作用。 但是有否定的东西吗? 显然,如果您的规则写得不好,就会遇到问题。 但是,如果您拥有大量站点并且经常使用mod-rewrite,它将对性能产生重大影响吗? 我在Google上快速搜索了一些基准测试,但没有发现太多。 回答1 我在每月获得数百万次/点击的网站上使用过mod_rewrite,而没有任何重大的性能问题。 您必须知道根据您的规则首先应用哪些重写。 使用mod_rewrite最有可能比使用您当前的语言解析URL更快。 如果您真的担心性能,请不要使用.htaccess文件,因为这些文件很慢。 将所有重写规则放在Apache配置中,该配置在启动时仅读取一次。 .htaccess文件会重新分析每个请求,每一起.htaccess在父文件夹的文件。 回答2 与Ryan所说的相呼应,与在配置文件中存储规则相比, .htaccess规则确实会损害您在繁忙站点上的加载时间。 我们最初尝试了这种方式(每月约有6000万页),但是直到服务器开始冒烟才持续了很长时间:) 将规则包含在配置中的明显缺点是,只要您修改规则,就必须重新加载配置。 一旦您更常访问的规则排在最前面并首先进行评估,最后一个标志(“ L”)对于加快规则的执行很有用。 如果您有很长的规则集,可能会使维护变得更加棘手-一天早上,我浪费了几个非常令人沮丧的时间
  • mod-rewrite 转发而不更改 URL(mod-rewrite forwarding without changing URL)
    问题 创建“漂亮” URL 时,我的 Apache 配置有一个小问题。 我已经到了输入(或链接)到的阶段 索引.html 转发你 index.php?pageID=Forside 这正是我想要的。 但是我怎样才能让 index.html 留在浏览器的地址栏中呢? 现在它转发并将 URL 更改为原始 URL。 这是我的 .htaccess: RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} index\.html RewriteRule .* http://www.radoor-designs.dk/index.php?pageID=Forside [L] 在有人对此发表评论之前:缺少 Options +FollowSymLinks,因为它在 one.com 网络酒店上触发了错误 500。 提前致谢! 回答1 请尝试以下操作: RewriteEngine On RewriteRule ^index\.html$ /index.php?pageID=Forside [L] 我认为这可以帮助您解决问题。 回答2 RewriteEngine On RewriteBase /
  • 使用Mod-Rewrite重写URL(Rewriting URLs with Mod-Rewrite)
    问题 我将如何重写: http://localhost/profile.php?user=MaFi 至 http://localhost/user/MaFi 回答1 尝试这样的RewriteRule: RewriteRule ^profile.php?user=(.*)$ /user/$1 [R=301,L] 回答2 如果您确实要将/profile.php?user=MaFi重定向到/user/MaFi ,请尝试以下规则: RewriteCond %{QUERY_STRING} ^(([^&]*&)*)user=([^&]+)(&+(.*))?$ RewriteRule ^profile\.php$ /user/%3?%1%5 [L,R=301] 但是,如果实际上您想在内部将/user/MaFi重写为/profile.php?user=MaFi ,请尝试以下规则: RewriteRule ^user/([^/]+)$ profile.php?user=$1 [L] 回答3 yoursite.com/MaFi〜yoursite.com/profile.php?user=MaFi <a href='/MaFi'>MaFi</a> RewriteRule ^([^.]+)$ "/profile.php?user=$1" [L] 或者可能... yoursite.com/profile
  • htaccess mod-rewrite:从根目录链接到子目录 - 忽略子目录中的目录?(htaccess mod-rewrite: link to subdirectory from root - neglect dirs in subdirectory?)
    问题 不久前我在 stackoverflow 上问了这个问题的一部分,这很完美:es 我有一个多域服务器,每个目录对应一个域名。 但是我的主域名 www.mydomain.com 也是我服务器上的一个目录,不会自动链接到。 这就是为什么我在网站的根目录中使用它...... 根/.htaccess RewriteEngine On RewriteCond %{REQUEST_URI} !^/my-website/ RewriteCond %{DOCUMENT_ROOT}/my-website%{REQUEST_URI} -f [OR] RewriteCond %{DOCUMENT_ROOT}/my-website%{REQUEST_URI} -d RewriteRule ^(.*)$ /my-website/$1 [L] 现在,当我调用 www.my-website.com 时,它会自动运行/my-website目录。 那很好。 但是在这个目录中,我有另一个 .htaccess 文件。 根/我的网站/.htaccess RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.php [NC,L] RewriteRule ^/projects/(.+?\.php)$ /$1 [L,NC
  • 带有子目录的 htaccess 多语言站点,默认为 301(htaccess multi language site with sub directories, and default 301)
    问题 我在设置 htaccess 以允许使用子目录方法的多种语言时遇到一些问题,例如: http://www.domain.com/en/ http://www.domain.com/sw/ http://www.domain.com/ie/ 同样使事情复杂化的是,该项目目前尚未上线,而是在开发服务器上。 例如,我目前正在访问该项目: http://dev.domain.com/devname/projectname/ 我希望上述内容自动 301 重定向到: http://dev.domain.com/devname/projectname/en/ 这是我的 htaccess: Options +FollowSymLinks -MultiViews RewriteEngine on # ---------------------------------------------------------------------- # MULTI LANGUAGE SUB DIRECTORY # ---------------------------------------------------------------------- RewriteCond %{REQUEST_URI} !^/(en|sw)/ RewriteRule ^(.*)$ en/$1 [R=301,L] # -
  • mod_rewrite 规则强制规范百分比编码(mod_rewrite rule to enforce canonical percent-encoding)
    问题 我们有一个带有动态 URL 方案的 PHP 应用程序,它需要对字符进行百分比编码,甚至是“非保留字符”,例如实际上不需要编码的括号或撇号。 应用程序认为以“错误”方式编码的 URL 被规范化,然后重定向到“正确”编码。 但是谷歌和其他用户代理会以不同的方式规范百分比编码/解码,这意味着当 Googlebot 请求页面时,它会询问“错误”的 URL,当它返回重定向到“正确”的 URL 时,Googlebot 将拒绝遵循重定向并将拒绝索引页面。 是的,这是我们这边的一个错误。 HTTP 规范要求服务器以相同的方式处理百分比编码和非百分比编码的非保留字符。 但是现在修复应用程序代码中的问题并不简单,所以我希望通过使用 Apache 重写规则来避免代码更改,这将确保从应用程序的角度来看 URL 是“正确”编码的,这意味着撇号、括号等都是百分比编码的,并且空格被编码为+而不是%20 。 这是一个例子,我想重写第一个并以第二个形式结束: www.splunkbase.com/apps/All/4.x/Add-On/app:OPSEC+LEA+for+Check+Point+(Linux) www.splunkbase.com/apps/All/4.x/Add-On/app:OPSEC+LEA+for+Check+Point+%28Linux%29 这是另一个: www
  • (63)文件名太长:访问/xyz失败referer:www.mydomain.com((63)File name too long: access to /xyz failed referer:www.mydomain.com)
    问题 最近我在我的 urls 中启用了加密。它对 95% 的 urls 工作正常。但只有在使用分页的一些页面中我收到 403 错误。当我检查 apache 错误日志时,我得到了这个错误。我使用的是 Yii 框架, apache 2.2,PHP 5.3。有什么想法吗? (63)File name too long: access to /xyz failed referer:www.mydomain.com 回答1 这是 Apache2 的限制 确保您在 2 个斜杠之间的任何内容不超过 255 个字符。 当您的参数/文件名超过 255 个字符时,Apache 将根据您的文件系统限制进行检查。 可以在此处找到有关最大文件名长度的信息:http://en.wikipedia.org/wiki/Comparison_of_file_systems#Limits 没有多少允许更长的文件名,所以你必须让它们更短,别无他法。 如果您确实需要使用超过 255 个字符加密的 Url,建议使用 Mod-Rewrite + Yii UrlManager 破解多个飞溅的参数,或者将您的加密算法限制为使用少于 255 个字符进行加密。
  • 自定义网址-为每个用户提供一个网址(Custom urls - giving each user a url)
    问题 我正在建立一个网站,我想自定义用户的个人资料,以便他们的个人资料网址共享他们的姓名。 例如,网站域为www.example.com,用户的URL为www.example.com/username。 我假设这是一个约定,因为我在网上看到了所有这些。 是否通过给每个用户自己的目录来完成,那将是多么艰辛? 回答1 我真的不能证明使用htaccess这样的东西。 我只使用htaccess来路由所有内容通过一个php文件(我的根目录index.php ),并让php整理如何处理url。 例如,您可以这样做: $uri = trim($_SERVER['REQUEST_URI'], '/'); $pieces = explode('/', $uri); $username = $pieces[0]; 然后使用$username 。 我解析和使用url的方式比这要复杂一些,但这与您的问题无关。 只要确保您所做的任何事情都能够说明任何可能的查询字符串等即可。 mod-rewrite的性能不好,所以我不会滥用它。 根据您的评论进行了更新。 这只是我原始代码示例的一个小扩展: //.htaccess - route all requests through index.php RewriteCond %{REQUEST_URI} !\.(png|jpe?g|gif|css|js|html)$