最近,我改变了我的网站工作方式——每篇文章都有物理页面,而不是动态加载内容,没有物理(子)页面,但我意识到我不能简单地上传新的网站文件,因为我会破坏所有社交平台共享链接、计数器和东西,因为实际上有数千个子页面。
我听说(我知道)via。htaccess和RewriteEngine(我需要使用RewriteEngine,因为htaccess中的所有代码都是为其编写的)我可以根据实际URL在内部加载完全不同的页面,例如,如果我有指向我的一个子页面的实际URL链接:
http://sub.mypage.com/php/somearticle.php?j=en
。。。因此,在不更改URL文本的情况下,它将按照不同的原则在内部加载我的新网站文件,如下所示:
http://sub.mypage.com/?s=somearticle&j=en
现在我还需要这些变量“j”和“somearticle”是动态的,或者更好的说法是,它们需要完全按照地址栏中的物理URL复制(其中“somearticle”实际上是原始物理php文件的名称,“j”只是语言变量),因为每次都是其他内容,所以我不必在htaccess中为每个具体子页面制作数千行代码-
我需要一些通用代码来管理所有子页面
(因为原则对所有人都是一样的,只是php名称发生了变化,有时语言=变量“j”),看到了吗?
那么,有谁能帮我告诉我实现这一目标的确切语法/代码吗?
编辑
因此,我自己也在玩它,如果我手动设置子页面,这似乎是可行的(注意:只是一个澄清-这是针对我的本地主机:8081,因此我有第一个条件,服务器的cos,我有不同的版本,有不同的索引路径。php)+我稍微将变量j part thanx更新到@Ben的帖子:
# LOAD PAGE DIFFERENT INTERNALLY - LOCALHOST
RewriteCond %{HTTP_HOST} ^localhost:8081 [NC]
RewriteCond %{REQUEST_URI} /php/(.*)\.php$ [NC]
RewriteRule ^php/(.*).php$ /WWW/_PHP_/lego/index.php?s=$1 [QSA,L]
但不幸的是出于某种原因
它影响我网站上的每个页面,而不仅仅是/php下的页面/
,所以当我点击进入我的第一个(default/initial=index.php)页面时,它会将其破坏(它包含所有文章的摘要-它们没有加载)-有人知道为什么吗?
已解决
因此,在对@Ben的代码进行了一些小的更改之后,这是正确的解决方案,因此我认为他的解决方案是正确的(因为如果页面位于服务器上,那么它实际上可以立即正常工作,因为我的测试版本位于本地主机上,指向/php/目录的路径不同))
LOAD PAGE DIFFERENT INTERNALLY - localhost
RewriteCond %{HTTP_HOST} ^localhost:8081 [NC]
RewriteCond %{REQUEST_URI} /php/([a-zA-Z0-9\-]+).php [NC]
RewriteRule ^ index.php?s=%1 [QSA,L]