Я пытаюсь понять, как работает переписывание URL-адреса. Я следую этому URL-адресу -
http://www.cognifide.com/blogs/cq/multidomain-cq-mappings-and-apache-configuration/
Шаги, которые я сделал в среде публикации -
/etc/map.publish/http:
jcr: primaryType: "sling:OrderedFolder",
home: {
sling:internalRedirect: ["/content/geometrixx/en.html"],
jcr:primaryType: "sling:Mapping",
sling:match: "localhost:4503/$"
},
localhost.4503: {
sling:internalRedirect: ["/content/geometrixx/en"],
jcr:primaryType: "sling:Mapping",
redirect: {
sling:internalRedirect: ["/content/geometrixx/en/$1","/$1"],
jcr:primaryType: "sling:Mapping",
sling:match: "(.+)$"
}
}
1) Однако, когда я нажимаю на этот URL:
http://localhost:4503/products.html then I got 404 error.
2) Более того, я хочу реализовать, когда пользователь нажимает на этот URL:
http://localhost:4503/content/geometrixx/en.html then it should open
http://localhost:4503/en/products.html.
Пожалуйста, дайте мне знать, возможно ли это, следуя вышеуказанному подходу
Обновление: я пытаюсь получить доступ через диспетчер. Я использую Apache 2.0 на Windows 7, CQ5.6.0. Мой httpd.conf выглядит так:
<IfModule disp_apache2.c>
DispatcherConfig conf/dispatcher.any
DispatcherLog logs/dispatcher.log
DispatcherLogLevel 3
DispatcherNoServerHeader 0
DispatcherDeclineRoot 0
DispatcherUseProcessedURL 0
DispatcherPassError 0
</IfModule>
<VirtualHost *:80>
ServerName localhost
DocumentRoot "C:/Apache2/htdocs/content/sitea"
RewriteEngine On
RewriteRule ^/$ /content/geometrixx/en.html [PT,L]
RewriteCond %{REQUEST_URI} !^/apps
RewriteCond %{REQUEST_URI} !^/content
RewriteCond %{REQUEST_URI} !^/etc
RewriteCond %{REQUEST_URI} !^/home
RewriteCond %{REQUEST_URI} !^/libs
RewriteCond %{REQUEST_URI} !^/tmp
RewriteCond %{REQUEST_URI} !^/var
RewriteRule ^/(.*)$ /content/geometrixx/en/$1 [PT,L]
<Directory "C:/Apache2/htdocs/content/sitea">
<IfModule disp_apache2.c>
SetHandler dispatcher-handler
ModMimeUsePathInfo On
</IfModule>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order Allow,Deny
Allow from all
</Directory>
</VirtualHost>
3) Теперь, когда я нажимаю: localhost/content/geometrixx/en/products.html, я получаю страницу, и диспетчер также кэширует страницу. Но после того, как я перейду на любую страницу, например «Продукты» -> «Треугольник», URL-адрес станет локальным: 4503/products/triangle.html из-за сопоставления Sling. это ожидается? Поскольку диспетчер не знает о сопоставлении Sling, он не кэширует треугольник.html. Как заставить кэш диспетчера работать?
4) Поскольку существует правило перезаписи (RewriteRule ^/(.*)$ /content/geometrixx/en/$1 [PT,L]), если я нажму на этот URL-адрес localhost/triangle.html, я должен получить правильную страницу как localhost/content/geometrixx/en/triangle.html, но я получаю ошибку 404.