Portál AbcLinuxu, 28. června 2025 00:44
RewriteCond $1 -d [OR] RewriteCond $1 -f RewriteRule ^([^/]+)(.*)$ - [L] RewriteCond $1.wsgi -f RewriteRule ^([^/]+)(.*)$ /$1.wsgi$2 [L] RewriteRule ^([^/]+)(.*)$ /index.wsgi$1$2 [L]
#!/bin/sh : ${USER:=$(whoami)} : ${DOC_ROOT:=/home/$USER/http} : ${DIR:=$(pwd)} rel_dir=${DIR#$DOC_ROOT} if [ "$rel_dir" == "$DIR" ]; then echo "Directory not in user document root!" >&2 echo "DOC_ROOT: $DOC_ROOT" >&2 echo "DIR: $DIR" >&2 exit 1 fi echo 'RewriteEngine On' echo 'RewriteCond %{REQUEST_FILENAME} -f' [OR] echo 'RewriteCond %{REQUEST_FILENAME} -d' echo 'RewriteRule .* - [L]' echo "RewriteCond $DIR/\$1 -f" echo 'RewriteRule ^([^.]+\.wsgi).* - [L]' echo echo "RewriteBase /~$USER$rel_path/" echo "RewriteCond $DIR/\$1.wsgi -f" echo 'RewriteRule ^([^/]*)(.*)$ $1.wsgi$2 [L]' echo 'RewriteRule ^(.*)$ index.wsgi/$1 [L]' # EOF
mod_rewrite
pracuje s cestou požadavku, tj. přepisovat to na /~username/
a ne /home/username/http/
je správně. Problém ale může být v tom, že ty cesty nevedou na dokumenty v DocumentRoot
, na to je v Apache nějaké omezení.
Z fleku to rozhodně nebylo, inspiroval jsem se v dokumentaci mod_rewrite.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.