在url的末尾斜杠
我认为(如果我错了,请纠正我),最好在url的大部分末尾加一个/。像这样: 而不是放在文件名的末尾: 我必须纠正这一点,在一个有很多链接的网站。有没有一种方法可以让我快速做到这一点。例如,在一些程序中,如Dreamweaver,我可以使用查找和替换 第二种情况在Dreamweaver中非常简单:在url的末尾斜杠,url,replace,Url,Replace,我认为(如果我错了,请纠正我),最好在url的大部分末尾加一个/。像这样: 而不是放在文件名的末尾: 我必须纠正这一点,在一个有很多链接的网站。有没有一种方法可以让我快速做到这一点。例如,在一些程序中,如Dreamweaver,我可以使用查找和替换 第二种情况在Dreamweaver中非常简单: -查找:.html/“ -替换:.html“ 但我怎么能说这样的话: -查找:以目录结尾的所有链接。像 -替换:相同的链接,但末尾带有/。与类似,您的方法可能有效,但它基于所有文件都有文件扩展名的假设
-查找:.html/“
-替换:.html“ 但我怎么能说这样的话:
-查找:以目录结尾的所有链接。像
-替换:相同的链接,但末尾带有/。与类似,您的方法可能有效,但它基于所有文件都有文件扩展名的假设 URL
http://www.myweb/file
和http://www.myweb/file/
因为后者可以解析为http://www.myweb/file/index.php
,或在web服务器中配置的默认设置中的任何其他设置。该URL还可以引用一个完全有效的文件,该文件不包含文件扩展名,例如它是REST端点
因此,如果您引用的是目录,例如,如果您希望web服务器查找正确的索引页以作出响应,或者执行目录列表,那么您应该显式地添加“/”
若要替换不正确的URL,请选择您的朋友
要查找所有带有错误“/”的文件,可以使用/\(html | php | jpg | png)\/
,在管道分隔列表中添加任意多个不同的文件扩展名。然后,根据您的工具,您可以将其替换为$1
或\1
使用Perl执行此操作的示例如下:
perl -pi -e 's/\.(html|php|jpg|png)\//.\1/g' theFileYouWantToCheck.html
当然(如果您使用的是基于Linux的系统),您可以通过find
:
find path/to/html/root -type f -name "*.html* | xargs perl -pi -e 's/\.(html|php|jpg|png)\//.\1/g'
它将查找目录中的所有html文件,并进行内联查找和替换。假设您使用的是版本控制,那么很容易看到所应用的更改:)
更新
解决向目录中添加斜杠的问题并非易事。我将采取的方法是:
- 编写一个脚本,在本地递归浏览您的网站结构,列出所有文件
- 解析HTML文件以提取所有
,并仅当URL结尾不在由第一个脚本提取的列表中时,将其替换为href=“.*”
href=“.*/”
任何基于文本的查找和替换都不会知道链接是否实际指向文件。您可以使用正则表达式并在URL中搜索
,编写某种生成器来搜索模式并替换它们。我总是这样做来替换整个工作区中的模式。不能保证文件名包含
和/或目录名不包含。除非您知道实际的文件系统结构,否则无法在URL中区分它们。@Damien_不相信您必须以递归方式扫描文件。然后您可以查找href=
或其他内容,并将其替换为所需的值。也许我没有解释清楚。请看我更新的问题。