我在这里安装的一个TYPO3使用页面设置中的字段alias
。 它不会使用simulatestatic
或realurl
。如果页面的别名是foo
,则可以通过以下网址访问此页面:
/index.php?id=foo
/foo.html
我现在希望在其他网址下可以访问该网页:/foo
,而不是.html
。
我的方法是简单地使用mod_rewrite添加一些这样的规则:
RewriteCond %{REQUEST_FILENAME} !index.php$
RewriteCond %{REQUEST_FILENAME} !\.html$
RewriteRule ^([^/]+)$ $1.html [QSA]
我的RewriteRules工作,他们首先将URI /foo
重写为/foo.html
,然后重写为/index.php
。这不起作用,我在请求/foo
时得到404。
我认为这是因为TYPO3仍然获得原始URI为/foo
而不是/foo.html
的信息,而该信息无法识别。
如果不使用realurl或simulatestatic(副作用是不需要的),并且不使用HTTP重定向(浏览器中的URL应该是/foo
),如何解决这个问题?在apache中有类似服务器内部重定向的东西吗?
答案 0 :(得分:1)
如果您的服务器上已激活mod_proxy,则可以使用proxy flag [P]并写入:
RewriteCond %{REQUEST_FILENAME} !\.html$
RewriteRule ^([^/]+)$ /$1.html [QSA,P]
如果没有,你可以写一个充当代理的php文件(我之前为Typo3做过)。在这种情况下,即使是简单的file_get_contents()也很方便。确保仅加载您网域中的网页。将非.html文件重定向到代理文件,该文件将它们重定向到.html文件,然后由Typo3处理。