【发布时间】:2023-03-03 10:40:02
【问题描述】:
我正在将一个 ASP.NET 网站转移到 WordPress,我的所有 URL 都是相同的,除了 .aspx 后缀。
是否有一种单行正则表达式 htaccess 解决方案可以转发人们来自
foo.com/bar/page.aspx
到
foo.com/bar/page
和
foo.com/bar.aspx
到
foo.com/bar
【问题讨论】:
标签: wordpress .htaccess asp.net
我正在将一个 ASP.NET 网站转移到 WordPress,我的所有 URL 都是相同的,除了 .aspx 后缀。
是否有一种单行正则表达式 htaccess 解决方案可以转发人们来自
foo.com/bar/page.aspx
到
foo.com/bar/page
和
foo.com/bar.aspx
到
foo.com/bar
【问题讨论】:
标签: wordpress .htaccess asp.net
不,不是单行。
只是我这边的一个猜测,也就是警告!前面还有未经测试的东西:
<IfModule mod_rewrite*>
# * = Your rewrite module may be named differently.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} \.aspx$
RewriteRule ^(.*)\.aspx$ $1
</IfModule>
但根据:http://wiki.apache.org/httpd/WhenNotToUseRewrite。 它可能更好地表达为:
RedirectMatch ^(.+)\.aspx$ $1
嘿,等等,这是一条线...现在只希望它有效...:P 如果没有,这可能:
AliasMatch ^(.+)\.aspx$ $1
抱歉,目前没有太多实际帮助,祝你好运。
【讨论】:
为什么要做正则表达式?
这可以很容易地完成,只需在末尾替换任何以“.aspx”结尾的内容
它更简单,字符串操作必须比正则表达式匹配更快。
IMO 在这种情况下正则表达式是多余的。
我刚刚快速搜索了一下,发现了这个article。
基本上你可以这样做:
RewriteRule ^(.*)\.aspx$ $1 [NC]
这应该从任何拥有它的 url 中删除 aspx。
【讨论】: